您的位置:首页 > 编程语言 > Java开发

servlet监听器

2016-05-24 06:10 351 查看
在servlet中定义了多种类型的监听器,它们用来监听的事件源分别为ServletContext,HttpSession,ServletRequset这三个域的对象。
可以简单的把这些监听器分为三种:
1、监听三个域对象的创建和销毁的事件监听器
2、监听三个域对象的属性改变的事件监听器
3、监听某个绑定到HttpSession域上的对象的状态的事件监听器


实现步骤:

1、创建实现以下接口的类

ServletContextListener、
ServletRequestListener、
ServletContextAttributeListener、
HttpSessionAttributeListener、
ServletRequestAttributeListener


2、注册监听器

在web.xml文件中写入以下代码,session绑定事件监听不需要写入web.xml文件

<listener>
<listener-class>package.class</listener-class>
</listener>


3、小案例

编写一个小程序,统计当前在线人数

//监听器

public class MyListencer implements ServletContextListener ,HttpSessionListener{

@Override
public void contextDestroyed(ServletContextEvent sce) {

}

@Override
public void contextInitialized(ServletContextEvent sce) {
sce.getServletContext().setAttribute("count", 0);

}

@Override
public void sessionCreated(HttpSessionEvent hse) {
ServletContext sc=hse.getSession().getServletContext();
int count=(int) sc.getAttribute("count");
count++;
sc.setAttribute("count", count);

}

@Override
public void sessionDestroyed(HttpSessionEvent hse) {
System.out.println(hse.getSession()+"被销毁了");

}

}


JSP页面

<body>
当前在线人数:${applicationScope.count}<br>
</body>


另:关于HttpSession 的一点理解

HttpSession不是由服务器自动创建的,而是当服务器调用request.getSession()时创建的,当服务器把jsp页面转换成servlet时,会自动的添加requset.getSession(),这就看起来像服务器自动创建Session
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet java