ServletContext域监听器
不知道为什么我实现ServletContextListener 接口的时候他并没有报错让我去覆盖他
原因:因为监听器里面的方法是default的(这样避免每一次在新增个方法在接口的时候就会对其他所实现这个接口的类进行修改)
处理方法:在{}的内部快捷键alt+/(代码补全)一般都是在最下面往下面翻 或者直接ctrl按住点击实现的接口 进入接口里面复制代码
代码
第一步:实现ServletContextListener接口
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
//监听服务器
public class Servletcontext implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
//服务器启动的时候
System.out.println("服务器启动");
}
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("服务器销毁");
}
}
第二步在web.xml添加监听器
<listener>
<listener-class>com.xiaonuolen.Servletcontext</listener-class>//你自己的类
</listener>
Session域的监听
package com.xiaonuolen.listerner;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class HttpSessionListenerTest implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("session创建");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("session销毁");
}
}
在tomcat中的context.xml 取消这个注释 实现关闭服务器session就销毁
第二步在web.xml添加监听器
request域的监听
public class RequestListenerTest implements ServletRequestListener {
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("request创建");
}
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("request销毁");
}
}
第二步在web.xml添加监听器
第三部 sre.getServletRequest();可以获取源
检测Session的事件其他的也类似
@WebServlet("/ServletTest") public class ServletTest extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.setAttribute("info","sgw"); session.setAttribute("info","sss"); System.out.println("sgw123"); session.invalidate(); } }