1.Servlet是个特殊的Java类,这个类必须继承HttpServlet。每个Servlet可以响应客户端的请求。Servlet提供不同的方法用于响应客户端请求。
- doGet: 用于响应客户端的GET请求
- doPost: 用于响应客户端的POST请求
- doPut: 用于响应客户端的PUT请求
- doDelete: 用于响应客户端的DELETE请求
通常,常用到的只有GET和POST两种,Servlet为了响应这两种请求,必须重写doGet()和doPost()方法。
2.Servlet的配置
为了能让Servlet响应用户请求,还必须将Servlet配置在Web应用中。从Servlet3.0开始,配置Servlet可以使用一下两种方法。
- 在Servlet类中使用@WebServlet Annotation进行配置
- 通过web.xml文件进行配置
使用@WebServlet Annotation修饰Servlet类时,@WebServlet可以指定一下常用属性
看一个在web.xml中配置Servlet的例子
<servlet>
<servlet-name>logincheck</servlet-name>
<servlet-class>com.zyh.action.LoginCheck</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>logincheck</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
3.JSP和Servlet的生命周期
JSP的实质是一个Servlet,我们编写的JSP页面将由Web容器编译成对应的Servlet,当Servlet在容器中运行时,其实例的创建和销毁都是有Web容器控制的。
创建Servlet实例有两个时机。
- 客户端第一次请求某个Servlet时,系统创建该Servlet的实例:大部分的Servlet都是这种Servlet。
- Web应用启动时立即创建Servlet实例,即load-on-statup Servlet
每一个Servlet的运行都遵循如下生命周期
(1). 创建Servlet实例
(2). Web容器调用Servlet的init方法,对Servlet进行初始化
(3). Servlet初始化后,将一直存在于容器中,用于响应客户端的请求。如果客户端发送GET请求,容器调用Servlet的doGET方法处理并响应;如果客户端发送POST请求,容器调用Servlet的doPOST方法处理并响应请求。或者统一使用service()方法处理来响应用户请求。
(4). Web容器决定销毁Servlet时,先调用Servlet的destroy方法,通常在关闭Web应用时销毁Servlet。
- IBM developerworks中有一篇更详细的关于Servlet的介绍
点这里