web基础-Servlet监听器

web基础-Servlet监听器

概念

Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext,HttpSession和ServletRequest等作用域对象的创建,销毁,属性改变。

使用

  1. 监听request
  2. 监听session
  3. 监听application

1.监听request范例

  1. 创建一个实现了指定接口的java类
public class Listener implements ServletRequestListener,ServletRequestAttributeListener{
	//request对象销毁监听方法
	public void requestDestroyed(ServletRequestEvent sre) {
		// TODO Auto-generated method stub
		System.out.println("Request被销毁了");
	}
	
	//request对象销毁监听方法
	public void requestInitialized(ServletRequestEvent sre) {
		// TODO Auto-generated method stub
		System.out.println("Request我被创建了");
	}

	//request对象属性添加监听方法
	public void attributeAdded(ServletRequestAttributeEvent srae) {
		// TODO Auto-generated method stub
		System.out.println("Request添加一条数据:"+srae.getName()+srae.getValue());
	}

	//request对象移除属性监听方法
	public void attributeRemoved(ServletRequestAttributeEvent srae) {
		// TODO Auto-generated method stub
		
	}

	//request对象属性替换监听方法
	public void attributeReplaced(ServletRequestAttributeEvent srae) {
		// TODO Auto-generated method stub
		
	}

}

  1. 在web.xml里面配置监听器
  <listener>
  	<listener-class>edu.yjsj.listener.Listener</listener-class>
  </listener>

监听器完成网页访问人数功能服务器代码

package edu.yjsj.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;



public class Listener2 implements HttpSessionListener,ServletContextListener{
	ServletContext sc = null;

	public void contextDestroyed(ServletContextEvent sce) {
		// TODO Auto-generated method stub
	
	}

	public void contextInitialized(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		//Application里面存储初值
		sc.setAttribute("count", 0);
	}

	public void sessionCreated(HttpSessionEvent se) {
		// TODO Auto-generated method stub
		//获取Application里面的存储值
		int count = (Integer) sc.getAttribute("count");
		//session创建时自增再存储
		sc.setAttribute("count", ++count);
	}

	public void sessionDestroyed(HttpSessionEvent se) {
		// TODO Auto-generated method stub
		//获取Application里面的存储值
		int count = (Integer) sc.getAttribute("count");
		//session创建时自减再存储
		sc.setAttribute("count", --count);
	}



}

学习过程积累,有问题欢迎指教

发布了8 篇原创文章 · 获赞 1 · 访问量 70

猜你喜欢

转载自blog.csdn.net/weixin_44172800/article/details/104034144