Servlet 生命周期中常用几个方法的执行顺序
1 init() servlet启动时 执行一次
2 service() 每次请求时执行
3 doGet() doPost() 在service()执行之后
4 coreservlets.HelloServlet2.java增加调试日志后代码如下:
package coreservlets;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger;
public class HelloServlet2 extends HttpServlet {
private static Logger log = Logger.getLogger(HelloServlet2.class);
@Override
public void init() throws ServletException {
log.info("HelloServlet2.init()..........");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
log.info("HelloServlet2.service()..........");
super.service(req, resp);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
log.info("HelloServlet2.doGet()..........");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n";
out.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>Hello (2)</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1>Hello coreservlets.HelloServlet2 cuigh</H1>\n" +
new java.util.Date() +
"</BODY></HTML>");
}
}
5 日志输出如下:
2015-08-27 14:02:45,532 [HelloServlet2.java 15] INFO - HelloServlet2.init()..........
2015-08-27 14:02:45,532 [HelloServlet2.java 22] INFO - HelloServlet2.service()..........
2015-08-27 14:02:45,532 [HelloServlet2.java 29] INFO - HelloServlet2.doGet()..........
2015-08-27 14:04:44,752 [HelloServlet2.java 22] INFO - HelloServlet2.service()..........
2015-08-27 14:04:44,752 [HelloServlet2.java 29] INFO - HelloServlet2.doGet()..........
2015-08-27 14:05:19,096 [HelloServlet2.java 22] INFO - HelloServlet2.service()..........
2015-08-27 14:05:19,112 [HelloServlet2.java 29] INFO - HelloServlet2.doGet()..........
2015-08-27 14:05:41,440 [HelloServlet2.java 22] INFO - HelloServlet2.service()..........
2015-08-27 14:05:41,456 [HelloServlet2.java 29] INFO - HelloServlet2.doGet()..........