servlet快速入门及原理
1概念 Servlet: server applet
Java类依赖于服务器才能执行 也就是Tomcat执行
Java类需要遵守一定的规则才能被Tomcat识别
(规则也就相当于接口)
这个规则(接口)也就是servlet
* 概念:运行在服务器端的小程序
* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
* 将来我们自定义一个类,实现Servlet接口,复写方法。
2快速入门
servlet 运行在Tomcat 或web服务器里面
* 快速入门:
1. 创建JavaEE项目
2. 定义一个类,实现Servlet接口
* public class ServletDemo1 implements Servlet
3. 实现接口中的抽象方法
4. 配置Servlet
在web.xml中配置:
<!--配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
2.1定义一个类,实现Servlet接口
2.2配置servlet
为什么要配置servlet:Java类已经定义好,将来需要通过浏览器访问Java类
浏览器通过URL来访问
URL:
localhost:8080/项目名称/资源名称
例如;localhost:8080/day13_tomcat/Demo
资源名称即Demo需要找到Java类:所以把Java类映射资源名称路径
4. 配置Servlet
在web.xml中配置:
<!--配置Servlet -->
<!--配置servlet -->
<servlet>
<servlet-name>demo1</servlet-name> <!--对类的名称配置demo1-->
<servlet-class>cn.itcast.web.servlet.ServletDemo01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern><!--对路径进行映射-->
</servlet-mapping>
在浏览器中测试输入:localhost:8080/demo1
Hello Servelet! 成功输出
3.虚拟目录
改成虚拟目录输出: localhost:8080/day14_tomcat/demo1
同样测试:成功输出
4.Servlet执行原理
在浏览器中输入:Http://localhost:8080/day14_tomcat/demo1
service()方法自动被调用
通过localhost 找到主机
8080 找到tomcat
/day14_tomcat 找到当前tomcat 部署的项目
/demo1 也就是资源名称
cn.itcast.servlet.ServletDemo01全类名
看到全类名 Tomcat会做以下三件事
1. Tomcat将全类名对应的字节码文件加载进内部 Class.forName()
2.创建对象 class.newInstance()
3.调用service方法
对象的创建、方法的调用都是由服务器执行的
* 执行原理:
1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
3. 如果有,则在找到对应的<servlet-class>全类名
4. tomcat会将字节码文件加载进内存,并且创建其对象
5. 调用其方法