源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 662|回复: 41

[JSP编程] JSP监听器用法分析

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2016-8-22 10:28:46 | 显示全部楼层 |阅读模式
这篇文章主要介绍了JSP监听器用法,结合实例形式分析了监听器的功能、原理及具体使用技巧,并附带分析了session创建的原理,需要的朋友可以参考下

本文实例讲述了JSP监听器用法。分享给大家供大家参考,具体如下:

监听器也叫Listener,是servlet服务的监听器。它可以监听客户端的请求,服务端的操作等。比如统计在线用户数量。每当增加一个HttpSession时,就会触发sessionCreate(HttpSessionEvent se)方法,这样就可以给在线人数加1.常用的监听器接口如下:

1. ServletContextAttributeListener监听对ServletContext属性的操作。比如增加,删除,修改属性。

2. ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent   sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent   sce)方法。

3. HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发session   Created(HttpSessionEvent   se)方法;当销毁一个Session时,激发sessionDestroyed   (HttpSessionEvent   se)方法。
4. HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent   se)   方法;

当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;

当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。

一个在线统计的例子:

public class ONline implements ServletContextListener,HttpSessionListener,HttpSessionAttributeListener(){
private ServletContext application = null;
 public void contextInitialized(ServletContextEvent arg0) {
 //根据响应事件参数初始化ServletContext
 this.application = arg0.getServletContext();
 //在ServletContext中存放一个空的用户信息列表
 application.setAttribute("users", new ArrayList());
 }
 public void sessionDestroyed(HttpSessionEvent arg0) {
 List list = (List)application.getAttribute("users");
 String name = arg0.getSession().getAttribute("name").toString();
 list.remove(name);
 application.setAttribute("users", list);
 }
 public void attributeAdded(HttpSessionBindingEvent arg0) {
 List list = (List)application.getAttribute("users");
 if(arg0.getName().equals("name")){
  list.add(arg0.getValue().toString());
 }
 application.setAttribute("users", list);
 }
}

web.xml文件中配置:

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

附:session在何时被创建?

常见的误解是session在有客户端访问时就被创建,然而事实是某server端调用HttpServletRequest.getSession(true)这样的语句时才被创建。注意如果jsp页面没有显式的使用<%page session="false"%>来关闭session,则在jsp页面编译成Servlet页面时会自动加上HttpServletRequest.getSession(true)这句话。这也是jsp中隐藏对象session的来历。

希望本文所述对大家jsp程序设计有所帮助。

回复

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2022-8-15 10:30:54 | 显示全部楼层
老大你好你好好你好
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

156

积分

注册会员

Rank: 2

积分
156
发表于 2022-8-16 01:49:31 | 显示全部楼层
逛逛看看瞧瞧
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2022-9-13 20:24:21 | 显示全部楼层
hi哦和烦恼农家女
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2022-9-27 13:44:02 | 显示全部楼层
灌灌灌灌水
回复 支持 反对

使用道具 举报

匿名  发表于 2022-9-27 16:06:04

casinos online


gambling
<a href="https://flashroyal.net/">slots</a>
online casino
<a href="https://casinowingames.com/">online casinos</a>
online casino
<a href="https://onlinelistcasino24.com/">casino game</a>
slots
<a href="https://realmonetcasino.com/">slots</a>
casino real money
<a href="https://casinogambiba.com/">online casino</a>
online casino
<a href="https://casinowellplay.com/">casino real money</a>
casino
<a href="https://casinoongames.com/">casino</a>
casinos online
<a href="https://casinotoplines.com/">casino</a>
回复 支持 反对

使用道具

匿名  发表于 2022-9-27 16:06:44

casino real money


online casino
<a href="https://flashroyal.net/">casino online</a>
online casino
<a href="https://casinowingames.com/">casinos</a>
casino real money
<a href="https://onlinelistcasino24.com/">online casinos</a>
casino
<a href="https://realmonetcasino.com/">gambling</a>
slots
<a href="https://casinogambiba.com/">casino online</a>
casinos
<a href="https://casinowellplay.com/">gambling</a>
casino game
<a href="https://casinoongames.com/">casino game</a>
online casinos
<a href="https://casinotoplines.com/">gambling</a>
回复 支持 反对

使用道具

匿名  发表于 2022-9-27 16:07:15

online casino

Anthonylam ·±нУЪ 2022-8-15 10:30
АПуДгГДгГГДгГ

casinos online
<a href="https://flashroyal.net/">casino online</a>
online casinos
<a href="https://casinowingames.com/">casino real money</a>
gambling
<a href="https://onlinelistcasino24.com/">online casinos</a>
gambling
<a href="https://realmonetcasino.com/">casinos</a>
casino online
<a href="https://casinogambiba.com/">online casino</a>
online casinos
<a href="https://casinowellplay.com/">casinos online</a>
gambling
<a href="https://casinoongames.com/">casino games</a>
casinos
<a href="https://casinotoplines.com/">online casino</a>
回复 支持 反对

使用道具

匿名  发表于 2022-9-27 16:07:53

casino online


casino
<a href="https://flashroyal.net/">gambling</a>
casino game
<a href="https://casinowingames.com/">casino games</a>
casinos
<a href="https://onlinelistcasino24.com/">gambling</a>
casino online
<a href="https://realmonetcasino.com/">casino online</a>
casino real money
<a href="https://casinogambiba.com/">casino real money</a>
casinos online
<a href="https://casinowellplay.com/">slots</a>
casinos
<a href="https://casinoongames.com/">gambling</a>
casino online
<a href="https://casinotoplines.com/">slots</a>
回复 支持 反对

使用道具

匿名  发表于 2022-9-27 16:08:26

casino games

УОН 37.139.53.x ·±нУЪ 2022-9-27 16:07
casinos online
casino online
online casinos

online casino
<a href="https://flashroyal.net/">casino</a>
casinos online
<a href="https://casinowingames.com/">casino game</a>
casino games
<a href="https://onlinelistcasino24.com/">casino</a>
casino real money
<a href="https://realmonetcasino.com/">casino online</a>
slots
<a href="https://casinogambiba.com/">gambling</a>
casino real money
<a href="https://casinowellplay.com/">casino real money</a>
gambling
<a href="https://casinoongames.com/">casino online</a>
online casinos
<a href="https://casinotoplines.com/">casino real money</a>
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 02:44 , Processed in 0.168237 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表