乡镇网站建设,深圳百度,网站实名认证查询申请表,哪些平台可以发布产品Servlet常用的监听器 ServletContextAttributeListener 用来感知ServlerContext对象属性变化#xff0c;比如添加或删除属性变化 ServletContextListener 用来感知ServlerContext对象的创建和销毁的 ServletRequestListener 可以用来监听感知ServletRequest对象的创建和销毁的…Servlet常用的监听器 ServletContextAttributeListener 用来感知ServlerContext对象属性变化比如添加或删除属性变化 ServletContextListener 用来感知ServlerContext对象的创建和销毁的 ServletRequestListener 可以用来监听感知ServletRequest对象的创建和销毁的 ServletRequestAttributeListener 用来感知ServletRequest属性变化如何添加或删除属性还是替换 HttpSessionListener监听session的变化常用于统计在线人数 HttpSessionAttributeListener用来监听Session属性变化 HttpSessionBindingListener 用来监听把一个数据绑定到Session对象 感知监听器 HttpSessionActivationListener用来监听session绑定的对象钝化(把对象持久化磁盘) 常用的有前6个
package com.sparrow.listener;import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;/*** Author: 诉衷情の麻雀* Description: 当一个类实现了ServletContextListener 是一个监听器该类可以监听的事件* 由该类实现的监听接口决定 该类可以监听ServletContext的创建和销毁* 当web应用启动时就会产生ServletContextEvent事件,会调用监听器的对应事件处理方法contextInitialized同时会传递事件对象* 我们可以通过ServletContextEvent事件对象来获取需要的信息然后再进行业务处理* 需要在web.xml配置监听器这样才能使tomcat知道底层使用反射机制* DateTime: 2023/7/5 9:57**/
public class SparrowServletContextListener implements ServletContextListener {Overridepublic void contextInitialized(ServletContextEvent sce) {ServletContext servletContext sce.getServletContext();System.out.println(SparrowServletContextListener监听到 servletContext 被创建...);//如果我们获取到ServletContext对象进行业务处理}Overridepublic void contextDestroyed(ServletContextEvent sce) {ServletContext servletContext sce.getServletContext();System.out.println(SparrowServletContextListener监听到 servletContext 被销毁...);//比如可以对servletContext数据进行处理 或者日志的管理System.out.println(进行处理);}
}
/*** Author: 诉衷情の麻雀* Description: TODO* DateTime: 2023/7/5 10:10**/
public class SparrowServletContextAttributeListener implements ServletContextAttributeListener {Overridepublic void attributeAdded(ServletContextAttributeEvent scae) {System.out.println(SparrowServletContextAttributeListener监听到 scae.getName());}Overridepublic void attributeRemoved(ServletContextAttributeEvent scae) {System.out.println(SparrowServletContextAttributeListener监听到: scae.getValue());}Overridepublic void attributeReplaced(ServletContextAttributeEvent scae) {}
}
ServletContextAttributeListener属性监听器
package com.sparrow.listener;import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;/*** Author: 诉衷情の麻雀* Description: TODO* DateTime: 2023/7/5 10:10**/
public class SparrowServletContextAttributeListener implements ServletContextAttributeListener {Overridepublic void attributeAdded(ServletContextAttributeEvent scae) {System.out.println(SparrowServletContextAttributeListener监听到添加属性: scae.getName() scae.getValue());}Overridepublic void attributeRemoved(ServletContextAttributeEvent scae) {System.out.println(SparrowServletContextAttributeListener监听到删除属性: scae.getName() scae.getValue());}Overridepublic void attributeReplaced(ServletContextAttributeEvent scae) {System.out.println(SparrowServletContextAttributeListener监听到修改/替换属性: scae.getName() scae.getValue());}
}
配置一个HelloServlet
/*** Author: 诉衷情の麻雀* Description: TODO* DateTime: 2023/7/18 19:59**/
public class HelloServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req,resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(helloServlet被调用了);ServletContext servletContext req.getServletContext();servletContext.setAttribute(name, 诉衷情の麻雀);servletContext.setAttribute(name, 诉衷情の麻雀);servletContext.removeAttribute(name);}
} servletservlet-nameHelloServlet/servlet-nameservlet-classcom.sparrow.servlet.HelloServlet/servlet-class/servletservlet-mappingservlet-nameHelloServlet/servlet-nameurl-pattern/helloServlet/url-pattern/servlet-mappingHttpSessionListener
/*** Author: 诉衷情の麻雀* Description: TODO* DateTime: 2023/7/5 10:25**/
public class SparrowHttpSessionListener implements HttpSessionListener {Overridepublic void sessionCreated(HttpSessionEvent se) {HttpSession session se.getSession();//当session创建时设置一个生命周期session.setMaxInactiveInterval(30);System.out.println(SparrowHttpSessionListener监听到session创建 session.getId());}Overridepublic void sessionDestroyed(HttpSessionEvent se) {HttpSession session se.getSession();System.out.println(SparrowHttpSessionListener监听到session销毁 session.getId());}
} Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取sessionHttpSession session req.getSession(); //如果没有就创建}配置监听器 !--配置监听器--listenerlistener-classcom.sparrow.listener.SparrowHttpSessionListener/listener-class/listenerlistenerlistener-classcom.sparrow.listener.SparrowServletContextListener/listener-class/listenerlistenerlistener-classcom.sparrow.listener.SparrowServletContextAttributeListener/listener-class/listenerlistenerlistener-classcom.sparrow.listener.SparrowRequestListener/listener-class/listenerHttpSessionAttributeListener
package com.sparrow.listener;import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;/**
* Author: 诉衷情の麻雀
* Description: TODO
* DateTime: 2023/7/18 20:26
**/
public class SparrowHttpSessionAttributeListener implements HttpSessionAttributeListener {Overridepublic void attributeAdded(HttpSessionBindingEvent se) {System.out.println(SparrowHttpSessionAttributeListener 监听到session添加属性了 se.getName() se.getValue() );}Overridepublic void attributeRemoved(HttpSessionBindingEvent se) {System.out.println(SparrowHttpSessionAttributeListener 监听到session删除属性了 se.getName());}Overridepublic void attributeReplaced(HttpSessionBindingEvent se) {System.out.println(SparrowHttpSessionAttributeListener 监听到session修改属性了 se.getName() se.getValue() );}
} ServletRequestListener监听器
作用监听Request对象的创建和销毁 常用于监控某个IP访问网站频率/用户访问的页面、资源(日志)
public class SparrowRequestListener implements ServletRequestListener {Overridepublic void requestInitialized(ServletRequestEvent sre) {System.out.println(监听到request对象创建);ServletRequest servletRequest sre.getServletRequest();System.out.println(访问IP servletRequest.getRemoteAddr());System.out.println(访问的资源 ((HttpServletRequest) servletRequest).getRequestURL());}Overridepublic void requestDestroyed(ServletRequestEvent sre) {System.out.println(监听到request对象被销毁);}
} ServletRequestAttributeListener监听器
作用监听Request属性变化
public class SparrowRequestAttributeListener implements ServletRequestAttributeListener {Overridepublic void attributeAdded(ServletRequestAttributeEvent srae) {}Overridepublic void attributeRemoved(ServletRequestAttributeEvent srae) {ServletRequestAttributeListener.super.attributeRemoved(srae);}Overridepublic void attributeReplaced(ServletRequestAttributeEvent srae) {ServletRequestAttributeListener.super.attributeReplaced(srae);}
}