简介
- 监听ServletContext、HttpSession、ServletRequest等域对象创建和销毁事件
- 监听域对象的属性发生修改的事件
- 监听在事件发生前、发生后做一些必要的处理
- 创建监听器
- 监听器内置方法
- 监听器触发流程
创建一个监控session 的监听器
创建servlet
这个servlet 的作用是创建session 和销毁session
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.example.listenerdemo.servlet;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;
@WebServlet(name = "createSession", value = "/cs") public class CreateSession extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("创建session"); req.getSession(); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package com.example.listenerdemo.servlet;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;
@WebServlet(name = "destroySession", value = "/ds") public class DestroySession extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("销毁session"); req.getSession().invalidate(); } }
|
创建listener
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package com.example.listenerdemo.listener;
import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener;
@WebListener public class SessionListener implements HttpSessionListener { @Override public void sessionCreated(javax.servlet.http.HttpSessionEvent httpSessionEvent) { System.out.println("listener: Session Created"); }
@Override public void sessionDestroyed(HttpSessionEvent se) { System.out.println("listener: Session Destroyed"); } }
|
效果
