JavaWeb显示器
本文研究的总结。欢迎转载,但请注明出处:http://blog.csdn.net/pistolove/article/details/44310967
A:监听器的定义
B:web监听器的主要用途:
C:一个web监听器实例
D:监听器分类
E:监听器的实例--在线人数统计
import java.util.ArrayList;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import com.my.entity.User;
import com.my.util.SessionUtil;/*** 计数监听器*/
@WebListener
public class MyHttpSessionListener implements HttpSessionListener {private int userNumber = 0;@Overridepublic void sessionCreated(HttpSessionEvent arg0) {userNumber++;arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);}@Overridepublic void sessionDestroyed(HttpSessionEvent arg0) {userNumber--;arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);ArrayList<User> userList = null;//在线用户ListuserList = (ArrayList<User>)arg0.getSession().getServletContext().getAttribute("userList");if(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId())!=null){userList.remove(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId()));}}
}
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;import com.my.entity.User;
import com.my.util.SessionUtil;
@WebListener
public class MyServletRequestListener implements ServletRequestListener {private ArrayList<User> userList;//在线用户List@Overridepublic void requestDestroyed(ServletRequestEvent arg0) {}@Overridepublic void requestInitialized(ServletRequestEvent arg0) {userList = (ArrayList<User>)arg0.getServletContext().getAttribute("userList");if(userList==null)userList = new ArrayList<User>();HttpServletRequest request = (HttpServletRequest) arg0.getServletRequest();String sessionIdString = request.getSession().getId();if(SessionUtil.getUserBySessionId(userList,sessionIdString)==null){User user = new User();user.setSessionIdString(sessionIdString);user.setFirstTimeString(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));user.setIpString(request.getRemoteAddr());userList.add(user);}arg0.getServletContext().setAttribute("userList", userList);}
}
import java.util.ArrayList;
import com.my.entity.User;public class SessionUtil {public static Object getUserBySessionId(ArrayList<User> userList, String sessionIdString) {for (int i = 0; i < userList.size(); i++) {User user = userList.get(i);if (user.getSessionIdString().equals(sessionIdString)) {return user;}}return null;}
}
public class User {private String sessionIdString;private String ipString;private String firstTimeString;public String getSessionIdString() {return sessionIdString;}public void setSessionIdString(String sessionIdString) {this.sessionIdString = sessionIdString;}public String getIpString() {return ipString;}public void setIpString(String ipString) {this.ipString = ipString;}public String getFirstTimeString() {return firstTimeString;}public void setFirstTimeString(String firstTimeString) {this.firstTimeString = firstTimeString;}
}
F:servlet3.0下的使用:仅仅须要添加注解就可以
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener("This is My Servlet 3.0 Listener")
public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {System.out.println("contextDestroyed");}@Overridepublic void contextInitialized(ServletContextEvent arg0) {System.out.println("contextInitialized");}
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
JavaWeb显示器相关推荐
- JavaWeb完整项目要用到的专业技能
完成JavaWeb项目用到哪些专业技能?在经典的JavaWeb的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端.Web开发中经典的MVC模式,Model-View-Contro ...
- JavaWeb学习笔记(JavaScript)
知识点总结于崔希凡+王泽(广陵散)的JavaWeb视频教程,侵权请联系删除. JavaScript JavaScript JavaScript简介 JavaScript的组成 JavaScript和H ...
- JavaWeb技术归档大全
文章目录 一.HTML5 超文本标记语言 1. 常用标签 2. 表单 二.CSS3 层叠样式表 1. 引用CSS 2. 选择器 三.JavaScript 1. 基础语法 1.1 数据类型 1.2 变量 ...
- 黑马JavaWeb学习笔记(一)
JavaWeb 事务 事务的基本操作 START TRANSACTION ----开始事物 COMMIT --手动提交 ROLLBACK --返回 保存临时数据,方式报错导致数据错误 如果不开启事物的 ...
- [javaweb企业人力资源管理系统设计与实现(论文+程序设计源码+数据库文件)
目录 1 绪论 4 1.1 项目开发背景 4 1.2 项目开发意义 4 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 5 2.1相关技术介绍 5 (1)MVC设计模式 5 (2)Sp ...
- java 实训项目_实训方案(JavaWeb项目实训)-
实训方案(JavaWeb项目实训)- 2012-2013学年第一学期 <Java Web项目开发实训>课程实施方案 课程名称(英文):Training of Java Web Projec ...
- javaWeb——Servlet
Servlet 系统架构 B/S结构的系统通信原理(没有涉及到Java小程序) 关于WEB服务器软件 实现一个最基本的web应用(这个web应用中没有java小程序) 对于一个动态的web应用来说,一 ...
- JavaWeb笔记01
文章目录 JavaWeb(狂神说Java) 1.基本概念 1.1前言 1.2web应用程序 1.3静态web 1.4 动态web 2.web服务器 2.1技术讲解 2.2web服务器 3.Tomcat ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
最新文章
- 删除某个文件夹下的所有文件
- 3.1.3 覆盖与交换
- 网易云携手美云智数掀起企业移动信息化发展新浪潮
- JQuery when
- CISSP的成长之路(二十一):用户持有凭证
- Linux网络-数据包的接收流程(基于RTL8139网卡驱动程序)
- 最长单调递增子序列_最长递增子序列(动态规划 + 二分搜索)
- 准程序员必看!该怎么规划自己的职业人生,看看前辈们给的建议!
- 计算机体系结构的分类
- Linux2.6用户空间堆栈区的分配与回收
- 离散数学第二版傅彦课后题答案_青年大最新答案第十季第四期答案 完整版题目和答案分享[多图]...
- 在Python中分词
- oracle学习札记46
- 如何远程访问办公室电脑(过年工作不打烊),亲测有效稳定
- 搭建jitsi的prosody出现的问题
- html中怎么设置背景图片固定,css如何实现固定的背景图像
- X86 MOVSB MOVSW MOVSD MOVSQ 指令详解
- 5.2为每种类型的模块内聚举一个例子
- 2021-2027全球及中国特种机器人行业研究及十四五规划分析报告
- 使用lux(annie)下载视频
热门文章
- uniapp光标自动定义到文本框_如何在Mac上的照片应用中创建自定义日历
- android 筛选控件_Flutter学习六之实现一个带筛选的列表页面
- python中if __name__ == '__main__'功能的解析
- 【直播】回放与PPT下载!深度学习如何用于摄影图像的处理?
- 【视频课】完备理论+4大案例实践,一课深入掌握图像分类各个方向,配套导师永久答疑群...
- 中国广电设备行业十四五运营模式与投资机遇研究报告2022版
- 全球及中国蔬菜泥配料行业竞争策略及投资潜力研究报告2021-2027年版
- SD:配置国家代码的检查和客户主数据隐藏字段 20190516
- python_day02 上节课知识点回顾
- Buy Tickets(poj 2828)