您的位置:首页 > 其它

带有注解的servlet的生命周期.

2017-04-26 19:03 288 查看
1.tomcat容器的生命周期.



2.测试代码.

package com.isoftstone.servlet;

import java.io.IOException;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* 测试servlet声明周期.
* @WebServlet 使用该注解后web.xml无需进行配置.
*/
@WebServlet("/ServletLifeTest")
public class ServletLifeTest extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* 该方法带有注解@PostConstruct 必须是没有返回值的,会在init方法执行前执行.
*/
@PostConstruct
private void  beforeInit(){
System.out.println("带有注解@PostConstruct的方法执行");
}
/**
* 该方法带有注解@PreDestroy 必须是没有返回值的,会在destroy方法执行后执行.
*/
@PreDestroy
private void afterDestroy(){
System.out.println("带有注解@PreDestory的方法执行");
}

public ServletLifeTest() {
System.out.println("构造方法执行 ");
}

@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
System.out.println("service(HttpServletRequest arg0, HttpServletResponse arg1)方法执行");
}

/**
* 如果将该方法注掉,则上面的方法会执行.
*/
@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("service(ServletRequest arg0, ServletResponse arg1)方法执行");
}

@Override
public void destroy() {
System.out.println("destroy()方法执行");
}

@Override
public void init() throws ServletException {
System.out.println("init() 方法执行");
}

/**
* 如果将该方法注掉,则上面的方法会执行.
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init(ServletConfig config)方法执行");
}

}


3.浏览器访问该servlet后的测试结果.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息