zoukankan      html  css  js  c++  java
  • 16.监听器-基础.md


    目录

    概念

    • 实现特定接口的普通java类
      *监听特定对象的创建、销毁或属性变化:
      • 对象自己创建自己用:无需监听

      • 对象别人创建自己用:需要监听

      • Servlet中需要监听的对象:

        • Request--->request监听器

        • session--->session相关监听器

        • servletContext---->servletContext监听器

    监听器功能

    监听创建或销毁

    • Interface ServletRequestListener 监听request对象的创建或销毁
    • Interface HttpSessionListener 监听session对象的创建或销毁
    • Interface ServletContextListener 监听servletContext对象的创建或销毁

    Demo:

    package per.liyue.code.listener;
    import javax.servlet.ServletRequestEvent;
    import javax.servlet.ServletRequestListener;
    public class ServletRequestListenerDemo implements ServletRequestListener {
        @Override
        public void requestDestroyed(ServletRequestEvent sre) {
                    //获取值
            Object obj = sre.getServletRequest().getAttribute("testName");
            System.out.println("获取到的属性值为:" + obj);        
                    System.out.println("销毁对象时候操作...");
            
        }
        @Override
        public void requestInitialized(ServletRequestEvent sre) {
            System.out.println("创建对象时候操作...");        
        }
    }
    
    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        This is my JSP page. <br>
            <%request.setAttribute("testName", "testvalue"); %>  
      </body>
    </html>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>WebDemo2</display-name>
      
      <listener>
          <listener-class>per.liyue.code.listener.ServletRequestListenerDemo</listener-class>
      </listener>
    </web-app>  
    
    

    监听属性变化

    • Interface ServletRequestAttributeListener 监听request对象属性变化: 添加、移除、修改

    • Interface HttpSessionAttributeListener 监听session对象属性变化: 添加、移除、修改

    • Interface ServletContextAttributeListener 监听servletContext对象属性变化

    session相关监听

    • Interface HttpSessionBindingListener 监听对象绑定到session上的事件
    • Interface HttpSessionActivationListener(了解) 监听session序列化及反序列化的事件
  • 相关阅读:
    request实现登录
    python之对象
    python基础之迭代与解析
    python基础之函数
    linux expect命令使用入门
    Python socket
    1
    蓝牙
    SQL查询语句
    iOS常用小知识纪录
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512700.html
Copyright © 2011-2022 走看看