zoukankan      html  css  js  c++  java
  • JavaWeb Listener

    1 ServletContextListener

       监听ServletContext对象被创建和销毁的Servlet监听器

       开发:>创建一个实现了ServletContextListener的类并且实现里面的两个方法

                  public class HelloServletContextListener implements ServletContextListener 

    public class HelloServletContextListener implements ServletContextListener {
    
        public void contextDestroyed(ServletContextEvent sce) {
            // TODO Auto-generated method stub
            System.out.println("销毁");
            
        }
    
        public void contextInitialized(ServletContextEvent sce) {
            // TODO Auto-generated method stub
            System.out.println("创建");
            
        }

                >并在web.xml里配置该Listener

                 

    <!-- 配置listener -->
        <listener>
        <listener-class>cn.stud.wlc.listener.HelloServletContextListener</listener-class>
        </listener>

               >ServletContextListener最常用在web应用加载时对当前web应用的相关资源进行初始化操作(创建数据库链接池。。。)

    (2,3)ServletRequestListener& HttpSessionListener和ServletContextListener类似

    public class HelloServletContextListener implements ServletContextListener,HttpSessionListener,ServletRequestListener {
    
        public void contextDestroyed(ServletContextEvent sce) {
            // TODO Auto-generated method stub
            System.out.println("销毁");
            
        }
    
        public void contextInitialized(ServletContextEvent sce) {
            // TODO Auto-generated method stub
            System.out.println("创建");
            
        }
    
        public void requestDestroyed(ServletRequestEvent sre) {
            // TODO Auto-generated method stub
            
        }
    
        public void requestInitialized(ServletRequestEvent sre) {
            // TODO Auto-generated method stub
            
        }
    
        public void sessionCreated(HttpSessionEvent se) {
            // TODO Auto-generated method stub
            
        }
    
        public void sessionDestroyed(HttpSessionEvent se) {
            // TODO Auto-generated method stub
            
        }
    
    }

     >request:是一个请求,当一个响应返回时,即被销毁,当发送一个请求时被创建。(注意请求转发是一个request)重定向是两个请求

     >session:当第一次访问web应用的jsp或servlet时,且该servlet或jsp还需要创建session时(session=true时),此时会服务器创建session,浏览器未关(session未过期)                再次访问其他页面时session不会再次创建——session销毁:session过期,直接调用invalid方法,当前web应用被卸载(session可以被持久化)关闭浏览器并不意                  味着session被销毁还可以通过sessionid找到服务器的session

                   http://localhost:8080/day_01_22/FontFilter.jsp;jsessionid=DD05FBD13644D0C53959B23E347DB082

    >application:贯穿一当前web应用的生命周期当前应用被加载时创建application对象,当前web应用被卸载时销毁application对象

    域对象中属性变更的事件监听器

    public class TestAttributeListener implements HttpSessionAttributeListener,ServletContextAttributeListener,ServletRequestAttributeListener {
    
        public void attributeAdded(ServletRequestAttributeEvent srae) {
            System.out.println("向request中添加了属性");
            
        }
    
        public void attributeRemoved(ServletRequestAttributeEvent srae) {
            System.out.println("从request中移除了属性");
            
        }
    
        public void attributeReplaced(ServletRequestAttributeEvent srae) {
            System.out.println("向request中替换了属性");
            
        }
    
        public void attributeAdded(ServletContextAttributeEvent scab) {
            // TODO Auto-generated method stub
            
        }
    
        public void attributeRemoved(ServletContextAttributeEvent scab) {
            // TODO Auto-generated method stub
            
        }
    
        public void attributeReplaced(ServletContextAttributeEvent scab) {
            // TODO Auto-generated method stub
            
        }
    
        public void attributeAdded(HttpSessionBindingEvent se) {
            // TODO Auto-generated method stub
            
        }
    
        public void attributeRemoved(HttpSessionBindingEvent se) {
            // TODO Auto-generated method stub
            
        }
    
        public void attributeReplaced(HttpSessionBindingEvent se) {
            // TODO Auto-generated method stub
            
        }
    
    }

    jsp

    <body>
    
        <%
            request.setAttribute("name", "ABCD");
            System.out.println("--------------------");
            
            request.setAttribute("name", "EFGH");
            System.out.println("--------------------");
            
            request.removeAttribute("name");
            System.out.println("--------------------");
    
            
        %>
    </body>

    运行结果

    HttpSessionBindingListener(不需要再web.xml中配置)API   getName(),getValue(),getSession()

    public class BindingListenerBean implements HttpSessionBindingListener {
    
        public void valueBound(HttpSessionBindingEvent event) {
            System.out.println("绑定到session");
            
        }
    
        public void valueUnbound(HttpSessionBindingEvent event) {
            System.out.println("从session解除绑定");
            
        }

    jsp

    <h4>BindingListener</h4>
        <!-- http://localhost:8080/vip/Listener/HttpSessionBindingListener.jsp -->
        <%
            BindingListenerBean BLB = new BindingListenerBean();
            session.setAttribute("BLB", BLB);
            System.out.println("--------------------");
            session.removeAttribute("BLB");
        %>

    结果

  • 相关阅读:
    重新想象 Windows 8 Store Apps (15) 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
    重新想象 Windows 8 Store Apps (12) 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示
    返璞归真 asp.net mvc (10) asp.net mvc 4.0 新特性之 Web API
    与众不同 windows phone (29) Communication(通信)之与 OData 服务通信
    与众不同 windows phone (33) Communication(通信)之源特定组播 SSM(Source Specific Multicast)
    与众不同 windows phone (27) Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏
    与众不同 windows phone (30) Communication(通信)之基于 Socket TCP 开发一个多人聊天室
    返璞归真 asp.net mvc (12) asp.net mvc 4.0 新特性之移动特性
    重新想象 Windows 8 Store Apps (2) 控件之按钮控件: Button, HyperlinkButton, RepeatButton, ToggleButton, RadioButton, CheckBox, ToggleSwitch
    重新想象 Windows 8 Store Apps (10) 控件之 ScrollViewer 特性: Chaining, Rail, Inertia, Snap, Zoom
  • 原文地址:https://www.cnblogs.com/wlc297984368/p/5436924.html
Copyright © 2011-2022 走看看