JAVA-EE监听器Listener的机制分析和使用------计算机网络经典

发布于:2023-10-25 ⋅ 阅读:(66) ⋅ 点赞:(0)
package com.bjpowernode.oa.listener;

import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
import jakarta.servlet.annotation.WebListener;

@WebListener
public class MyListener implements ServletContextListener
//实现ServletContextListener接口
{
    //现在这个监听器主要监听的时servletContext的状态
    //所有监听器中的方法都不需要我们调用
    //由服务器来调用,但事件发生后,被服务器调用
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //这个方法在servletContext创建的时候调用
        System.out.println("servletContext创建了");
        //这个对象随服务器启动创建
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        //这个在ServletContext被销毁的时候调用
        System.out.println("servletContext销毁了");
        //这个对象随服务器关闭销毁
    }
}
package com.bjpowernode.oa.listener;

import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
import jakarta.servlet.annotation.WebListener;

@WebListener
public class MyListener implements ServletContextListener
//实现ServletContextListener接口
{
    //现在这个监听器主要监听的时servletContext的状态
    //所有监听器中的方法都不需要我们调用
    //由服务器来调用,但事件发生后,被服务器调用
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //这个方法在servletContext创建的时候调用
        System.out.println("servletContext创建了");
        //这个对象随服务器启动创建
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        //这个在ServletContext被销毁的时候调用
        System.out.println("servletContext销毁了");
        //这个对象随服务器关闭销毁
    }
}
package com.bjpowernode.oa;

public class Test
{
    //静态代码块,类加载时执行,只执行一次
    //静态代码块用的不多,但是但我们需要在类加载的时候执行一段代码,我们就使用
    //由此可知,静态代码块就是java程序为程序员预留的一个时间,在类加载时执行代码
    static
    {
        System.out.println("类加载了");
    }

    public static void main(String[] args)
    {

    }
}
package com.bjpowernode.oa;

public class Test
{
    //静态代码块,类加载时执行,只执行一次
    //静态代码块用的不多,但是但我们需要在类加载的时候执行一段代码,我们就使用
    //由此可知,静态代码块就是java程序为程序员预留的一个时间,在类加载时执行代码
    static
    {
        System.out.println("类加载了");
    }

    public static void main(String[] args)
    {

    }
}
package com.bjpowernode.oa.listener;

import jakarta.servlet.ServletRequestEvent;
import jakarta.servlet.ServletRequestListener;
import jakarta.servlet.annotation.WebListener;

@WebListener
public class MyRequestListener implements ServletRequestListener
{
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("request销毁");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("request创建");
    }
}
package com.bjpowernode.oa.listener;

import jakarta.servlet.ServletRequestEvent;
import jakarta.servlet.ServletRequestListener;
import jakarta.servlet.annotation.WebListener;

@WebListener
public class MyRequestListener implements ServletRequestListener
{
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("request销毁");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("request创建");
    }
}
package com.bjpowernode.oa.listener;

import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpSessionEvent;
import jakarta.servlet.http.HttpSessionListener;

@WebListener
public class MySession implements HttpSessionListener
{
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("session创建了");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("session销毁了");
    }
}
package com.bjpowernode.oa.listener;

import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpSessionEvent;
import jakarta.servlet.http.HttpSessionListener;

@WebListener
public class MySession implements HttpSessionListener
{
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("session创建了");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("session销毁了");
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <session-config>
<!--        代表session的超时时间是30分钟,如果30分钟到,session对象就会被销毁-->
        <session-timeout>30</session-timeout>
    </session-config>
<!--    <listener>-->
<!--        <listener-class>com.bjpowernode.oa.listener.MyListener</listener-class>-->
<!--    </listener>-->
<!--    使用欢迎页机制跳转到cookie登录-->
    <welcome-file-list>
        <welcome-file>Welcome</welcome-file>
    </welcome-file-list>
<!--    XML的写法-->
    <filter>
        <filter-name>loginFilter</filter-name>
        <filter-class>com.bjpowernode.oa.filter.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>loginFilter</filter-name>
<!--        <url-pattern>/Test/A</url-pattern>-->
<!--        <url-pattern>/Test/B</url-pattern>-->
        <url-pattern>/dept/*</url-pattern>
    </filter-mapping>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <session-config>
<!--        代表session的超时时间是30分钟,如果30分钟到,session对象就会被销毁-->
        <session-timeout>30</session-timeout>
    </session-config>
<!--    <listener>-->
<!--        <listener-class>com.bjpowernode.oa.listener.MyListener</listener-class>-->
<!--    </listener>-->
<!--    使用欢迎页机制跳转到cookie登录-->
    <welcome-file-list>
        <welcome-file>Welcome</welcome-file>
    </welcome-file-list>
<!--    XML的写法-->
    <filter>
        <filter-name>loginFilter</filter-name>
        <filter-class>com.bjpowernode.oa.filter.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>loginFilter</filter-name>
<!--        <url-pattern>/Test/A</url-pattern>-->
<!--        <url-pattern>/Test/B</url-pattern>-->
        <url-pattern>/dept/*</url-pattern>
    </filter-mapping>
</web-app>

网站公告

今日签到

点亮在社区的每一天
去签到