Servlet
作用:是运行在服务器端的程序,用于响应客户端的请求;
本质:是一个特殊的Java类,继承自HttpServlet;
提供不同的方法响应客户端请求:
1)doGet
2)doPost
3)doPut
4)doDelete
通常客户端的请求只有GET和POST两种,Servlet为了响应这两种请求,相应的必须重写doGet()和doPost()两个方法 。
5)service
大部分时候,Servlet对于所有请求的响应都是完全一样的,此时,可以重写service()方法来代替以上四个方法,来响应客户端的请求 。
6)init(ServletConfig config):创建Servlet实例时,初始化Servlet资源 。
7)destroy:销毁Servlet实例时,自动调用,回收资源 。
通常无需重写init()和destroy()两个方法,除非需要完成特定的资源初始化以及资源回收 。
生命周期:
1)创建Servlet实例;
2)Web容器调用init()方法对Servlet进行初始化;
3)Servlet初始化后,一直存于Web容器中,用于响应客户端的请求;
4)Web容器调用destroy()方法销毁Servlet 。
创建Servlet实例有两个时机:
1)客户端第一次请求Servlet时,系统创建该Servlet的实例:大部分Servlet实例如是创建;
2)Web应用启动时立即创建Servlet实例,即load-on-startup Servlet:用于拦截很多请求的Servlet 。
销毁Servlet的时机:
通常在关闭Web应用的时候 。
web.xml配置:
<servlet>
<!-- 指定Servlet的名字 -->
<servlet-name>test</servlet-name>
<!-- 指定Servlet的实现类 -->
<servlet-class>ts.Test</servlet-class>
<!-- 配置应用启动时创建Servlet实例 -->
<load-on-startup>1</load-on-startup>
<!-- Servlet配置参数 -->
<init-param>
<param-name>p1</param-name>
<param-value>v1</param-value>
<param-name>p2</param-name>
<param-value>v2</param-value>
<param-name>p3</param-name>
<param-value>v3</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<!-- 配置Servlet的URL -->
<url-pattern>/myurl</url-pattern>
</servlet-mapping>