实验证明Servlet生命周期
根据上过一篇日志的内容,测试Servlet生命周期内各个函数的执行顺序。
后台打印结果如下:
信息: Server startup in 1078 mspostConstruct!init!get!2011-1-10 17:16:21 org.apache.coyote.http11.Http11Protocol pause信息: Pausing Coyote HTTP/1.1 on http-80802011-1-10 17:16:22 org.apache.catalina.core.StandardService stop信息: Stopping service Catalinadestory!preDestory!2011-1-10 17:16:22 org.apache.coyote.http11.Http11Protocol destroy信息: Stopping Coyote HTTP/1.1 on http-8080
测试代码:
import java.io.IOException;import java.io.PrintWriter;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class testSequence extends HttpServlet {/** * Destruction of the servlet. <br> */public void destroy() {//super.destroy(); // Just puts "destroy" string in log// Put your code hereSystem.out.println("destory!");}/** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(this.getClass());out.println(", using the GET method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();System.out.println("get!");}/** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(this.getClass());out.println(", using the POST method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();System.out.println("post!");}/** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */public void init() throws ServletException {// Put your code hereSystem.out.println("init!");}public @PostConstruct void printAline(){System.out.println("postConstruct!");}public @PreDestroy void printSecondLine(){System.out.println("preDestory!");}} 1 楼 uule 2011-01-15 哥们,这是什么东东?@PostConstruct 2 楼 BabyDuncan 2011-01-15 uule 写道哥们,这是什么东东?@PostConstruct我觉得你可以理解为对这个函数的修饰符。