Servlet的生命周期:
实例化 =》先初始化自己继承的类
初始化=》 init() (第一次访问的时候创建)
运行=》 dopost() doget() service() (每次有人访问都会执行)
销毁=》 destory()
出生:(实例化–>初始化)第一次访问Servlet就出生(默认情况下)
活着:(服务)应用活着,servlet就活着
死亡:(销毁)应用卸载了servlet就销毁。
ServletContext详解(上下文,域对象)
详细解释
生命周期:servletContext属于整个工程,整个工程就一个servletContext,所有的servlet共用。当你的工程创建,servletContext就创建,当你的工程销毁(tomcat停止),servletContext才会销毁。常用方法:
ServletContext context = this.getServletContext();
//向ServletContext对象的map中添加数据
void setAttribute(String name,object value);//map ley value
//从ServletContext对象的map中取数据
Object getAttribute(String name);
//根据name去移除数据
void removeAttribute(String name);
实例:
- FirstServlet.java
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//已经把getServletContext()这方法实现了,直接this.或者super.调用即可
ServletContext context = this.getServletContext();
context.setAttribute("name","xiaoming");//map ley value
System.out.println((String) context.getAttribute("name"));
}
2.SecondServlet.java
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = (String) this.getServletContext().getAttribute("name");
System.out.println(name);
}