欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

servlet三个监听器-servlet,request,session

程序员文章站 2024-03-20 10:08:16
...

servlet三个监听器-servlet,request,session

解释:

servlet监听器是在工程一开始启动时仅执行一次。

request监听器是在每次发送request请求时执行。

session监听器是在当你获取session时执行,比如getsession.getId()。

销毁:

ServletListener 在工程关闭时销毁,或者重启时先销毁再启动。

requestListener在我们每次请求一个网页后,requestListener会自动销毁。

sesslonListener的销毁时间有session的过期时间决定,我们可以在web.xml中进行配置

1.servlet监听器

创建ServletListener.java文件

package org.test.base.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ServletListener implements ServletContextListener{

	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
         System.out.println("contextDestroyed");
	}
 
	public void contextInitialized(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		   System.out.println("contextInitialized");
	}

}

2.request监听器

创建RequestListener.java文件

package org.test.base.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;

public class RequestListener implements ServletRequestListener{
	public void requestDestroyed(ServletRequestEvent arg0) {
		// TODO Auto-generated method stub
         System.out.println("requestDestroyed");
	}
 
	public void requestInitialized(ServletRequestEvent arg0) {
		// TODO Auto-generated method stub
		  System.out.println("requestInitialized");
	}

}

3.session监听器

创建SessionListener.java文件

package org.test.base.listener;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionListener implements HttpSessionListener {
	 
	public void sessionCreated(HttpSessionEvent arg0) {
		// TODO Auto-generated method stub
           System.out.println("sessionCreated");
	}
 
	public void sessionDestroyed(HttpSessionEvent arg0) {
		// TODO Auto-generated method stub
		  System.out.println("sessionDestroyed");
	}
 
}

web.xml添加监听配置

<!-- Spring配置(监听器) -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.test.base.listener.ServletListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.test.base.listener.RequestListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.test.base.listener.SessionListener</listener-class>
	</listener>

会话时间设置

<!-- 配置session超时时间为30分钟,如果为0,则表示不超时 -->
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

完成。。。。。。。。