对于servlet的调用过程和生命周期,我们可以结合一个小小的实例来进行分析和理解。
首先,我们建立一个servlet:
package com.jjyy.servlet.call;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* servlet的调用过程
* @author JiangYu
*
*/
public class ServletCallProcess extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("测试servlet的调用过程");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
其次,将我们的servlet注册到web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ServletCallProcess</servlet-name>
<servlet-class>com.jjyy.servlet.call.ServletCallProcess</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletCallProcess</servlet-name>
<url-pattern>/ServletCallProcess</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
启动Tomcat服务器,在浏览器中访问以下我们的Servlet(注意打开HttpWatch注意观察请求和响应信息):
从上面的实验来看,我们可以看到了浏览器给服务器发送了一个请求,服务器对浏览器的请求做了一次响应。这就完整的做完了一次请求和响应的测试。那么其中的调用过程和具体执行的细节是怎么一回事呢?下面通过一副图来说明servlet的调用过程和servlet的生命周期。
通过上面的图解分析,相信应该能够直观的描述出servlet的调用过程了,对应的也讨论了一下servlet的生命周期。
对于学过的东西,适当的复习一下,真的有种温故而知新的感觉,希望自己能够坚持下去。
预告一下,下一节准备谈一谈servlet中的线程安全问题。