zoukankan      html  css  js  c++  java
  • 监听器

    一、Listener监听器
        Javaweb开发中的监听器,是用于监听web常见对象
        HttpServletRequest    HttpSession    ServletContext
        监听它们的创建与销毁   属性变化        session绑定javaBean

      1、监听机制
        事件      就是一个事情
        事件源      产生这个事情的源头
        监听器      用于监听指定的事件的对象
        注册监听   要想让监听器可以监听到事件产生,必须对其进行注册。


      2、Javaweb开发中常见监听器
        2.1、监听域对象的创建与销毁
          监听ServletContext创建与销毁      ServletContextListener
          监听HttpSession创建与销毁      HttpSessionListener
          监听HttpServletRequest创建与销毁   ServletRequestListener


        2.2、监听域对象的属性变化
          监听ServletContext属性变化     ServletContextAttributeListener
          监听HttpSession属性变化       HttpSessionAttributeListener
          监听HttpServletRequest属性变化    ServletRequestAttributeListener

        2.3、监听session绑定javaBean
          监听javaBean对象是否绑定到了session域 HttpSessionBindingListener
          监听javaBean对象的活化与钝化 HttpSessionActivationListener


      3、监听器的快速入门
        关于创建一个监听器的步骤:


          1. 创建一个类,实现指定的监听器接口
          2. 重写接口中的方法
          3. 在web.xml文件中对监听器进行注册。
        
            3.1. ServletContext对象的创建与销毁
               这个对象是在服务器启动时创建的,在服务器关闭时销毁的。

            3.2 HttpSession对象的创建与销毁
              HttpSession session=request.getSession();
              Session销毁
                1.默认超时 30分钟
                2.关闭服务器
                3.invalidate()方法
                4.setMaxInactiveInterval(int interval) 可以设置超时时间
                  注:在我们直接访问一个jsp页面的时候,会直接创建一个session对象,

                    因为我们默认情况下是可以在jsp页面中直接使用session内置对象的。

            3.3 HttpServletRequest创建与销毁
              Request对象是发送请求服务器就会创建它,当响应产生时,request对象就会销毁。

            (在java的监听机制中,它的监听器中的方法都是有参数的,参数就是事件对象,

              而我们可以通过事件对象直接获取事件源。)
      4、session绑定javaBean
        1. javaBean对象自动感知被绑定到session中.
          HttpSessionBindingListener 这个接口是由javaBean实现的,并且不需要在web.xml文件中注册.

        2. javabean对象可以活化或钝化到session中。
          HttpSessionActivationListener如果javaBean实现了这个接口,那么当我们正常关闭服务器时,

            session中的javaBean对象就会被钝化到我们指定的文件中。
            当下一次在启动服务器,因为我们已经将对象写入到文件中,这时就会自动将javaBean对象活化到session中。

            我们还需要个context.xml文件来配置钝化时存储的文件:
              在meta-inf目录下创建一个context.xml文件
              <Context>
                <Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
                  <Store className="org.apache.catalina.session.FileStore" directory="it315"/>
                </Manager>
              </Context>



  • 相关阅读:
    jvm参数陷阱
    concurrent mode failure
    17.Quick QML-SpinBox
    16.Quick QML-ButtonGroup、RadioButton、CheckBox
    15.Quick QML-TextEdit和TextArea
    14.Quick QML-TextInput和TextField详解
    13.Quick QML-RowLayout、ColumnLayout、GridLayout布局管理器介绍、并通过GridLayout设计的简易网站导航界面
    9.qml-property自定义属性
    macOS 系统安装Maven教程
    macOS系统上 为Github 托管项目的访问添加SSH keys
  • 原文地址:https://www.cnblogs.com/soficircle/p/6935027.html
Copyright © 2011-2022 走看看