JSP&Servlet 统计在线人数及信息
来源:互联网 发布:php 笛卡尔乘积算法 编辑:程序博客网 时间:2024/05/05 23:49
首先创建一个javabean的user类:
包括sessionIdString,ipString,firstTimeString属性。
创建session监听:
创建一个请求监听:
打开一个浏览器,进入index.jsp:
网页显示:
当前在线用户人数:1
IP:0:0:0:0:0:0:0:1,FirstTime:2015-09-09 21:32:38,SessionId:707E948E950F1A4AB963275EC5C1055B
打开另一不同的浏览器
显示:
当前在线用户人数:2
IP:0:0:0:0:0:0:0:1,FirstTime:2015-09-09 21:32:38,SessionId:707E948E950F1A4AB963275EC5C1055B
IP:0:0:0:0:0:0:0:1,FirstTime:2015-09-09 21:33:46,SessionId:8B11D420FB1166266745510293E1B05D
刷新第一个,显示第二个相同。
包括sessionIdString,ipString,firstTimeString属性。
创建session监听:
@WebListener public class MyHttpSessionListener implements HttpSessionListener { private int userNumber = 0; @Override public void sessionCreated(HttpSessionEvent arg0) { userNumber++; arg0.getSession().getServletContext().setAttribute("userNumber", userNumber); } @Override public void sessionDestroyed(HttpSessionEvent arg0) { userNumber--; arg0.getSession().getServletContext().setAttribute("userNumber", userNumber); ArrayList<User> userList = null;//在线用户List userList = (ArrayList<User>) arg0.getSession().getServletContext().getAttribute("userList"); if (SessionUtil.getUserBySessionId(userList, arg0.getSession().getId()) != null) { userList.remove(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId())); } } }
创建一个请求监听:
@WebListener public class MyServletRequestListener implements ServletRequestListener { private ArrayList<User> userList;//在线用户List @Override public void requestDestroyed(ServletRequestEvent arg0) { } @Override public 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); } }
实现请求监听中的getUserBySessionId方法,创建单独的类SessionUtil实现:
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; } }修改index.jsp:
<body> 当前在线用户人数:${userNumber }<br/> <% ArrayList<com.imooc.entity.User> userList = (ArrayList<com.imooc.entity.User>)request.getServletContext().getAttribute("userList"); if(userList!=null){ for(int i = 0 ; i < userList.size() ; i++){ com.imooc.entity.User user = userList.get(i); %> IP:<%=user.getIpString() %>,FirstTime:<%=user.getFirstTimeString() %>,SessionId:<%=user.getSessionIdString() %> <br/> <%}} %> </body>
打开一个浏览器,进入index.jsp:
网页显示:
当前在线用户人数:1
IP:0:0:0:0:0:0:0:1,FirstTime:2015-09-09 21:32:38,SessionId:707E948E950F1A4AB963275EC5C1055B
打开另一不同的浏览器
显示:
当前在线用户人数:2
IP:0:0:0:0:0:0:0:1,FirstTime:2015-09-09 21:32:38,SessionId:707E948E950F1A4AB963275EC5C1055B
IP:0:0:0:0:0:0:0:1,FirstTime:2015-09-09 21:33:46,SessionId:8B11D420FB1166266745510293E1B05D
刷新第一个,显示第二个相同。
阅读全文
0 0
- JSP&Servlet 统计在线人数及信息
- JSP +Servlet 统计当前在线人数
- jsp+servlet+java 实现统计在线人数,在线用户
- jsp在线人数统计
- jsp 统计在线人数
- jsp统计在线人数
- jsp在线人数统计
- jsp统计在线人数
- servlet+java+jsp实现在线人数的统计
- jsp 实现在线人数统计
- jsp实现 统计在线人数
- jsp统计在线人数问题
- 统计在线用户及人数
- Jsp统计在线人数和在线注册人数
- (转)Servlet监听器统计在线人数
- Servlet监听------------例子:统计当前在线人数
- Servlet监听器实现网站在线人数统计
- Servlet监听器(统计在线人数案例)
- javascript 和 jq 的调试 用console.log() 函数
- yx:Exception异常处理
- empty()与remove() 区别
- BFC & haslayout
- Kotlin学习笔记——Dagger2
- JSP&Servlet 统计在线人数及信息
- Godeyes 使用说明
- CentOS7引导Windows7
- 个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客
- 微信公众号开发之获取地理位置接口
- python中获取异常描述与else用法
- Android初级工程师的service研究之路
- GMS认证之CtsVerifier测试-Screen Pinning Test
- SVN不同版本库迁移