目录
1.Servlet由来
在JaveEE API文档中对Servlet的描述是:可以运行在服务器端的微小程序,但是实际上,**Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则,**所以说编程人员需要去自定义一个类实现,Servlet接口,并重写其中的方法
浏览器请求服务器的信息的时候,有静态资源和动态资源,动态资源在不同用户访问时的表现不同,其中的逻辑由Java代码规定,所以需要一个Java类,而这个Jave类依赖于服务器(tomcat)才能运行,那么tomcat如何识别这个Java类呢?一定是需要一些规则,也就是接口(在Java中规则就是接口),所以Servlet接口应运而生
2.Servlet快速入门
- 创建JavaEE项目
- 自定义一个类,实现servlet接口
- 实现接口中的抽象方法
- 配置servlet
Servlet接口的方法 | 方法描述 |
---|---|
init() | 初始化方法,在Servlet被创建时执行,且只会执行一次 |
getServletConfig() | 获取ServletConfig对象,即Servlet的配置对象 |
getServletInfo() | 获取Servlet的一些信息,版本,作者等等 |
service() | 提供业务逻辑的代码,每一次Servlet被访问时都执行 |
destroy() | 在服务器正常关闭时执行,且只会执行一次 |
配置servlet要在web.xml的根标签里面
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>
3.Servlet执行原理
当启动项目之后就可以执行service()方法中的业务逻辑了,但是其中Servlet的执行原理是怎么样的呢?看下面这个视频讲得很清楚 3_Servlet_执行原理_哔哩哔哩_bilibili
执行原理:
- 服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的servlet的资源路径
- 查找web.xml文件,是否有对应的<url-pattern>标签体内容
- 如果有,则在找到对应的<servlet-class>全类名
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
4.Servlet生命周期
- 被创建:执行init方法,只执行一次
- 提供服务:执行service方法,执行多次
- 被销毁:执行destroy方法,只执行一次