Servlet基础(四:统计登录人数)
来源:互联网 发布:单片机usb转串口 编辑:程序博客网 时间:2024/06/06 03:13
使用Listener监听器来实现,统计登录的用户数量。
1:首先,写一个登录界面
<html> <head> <title>Login</title> </head> <body> <form action="first" method="post"> <input type="text" name="username"/><br> <input type="password" name="password"/><br> <input type="submit" value="登录"/> </form> </body></html>
2:响应登录的Servlet
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by D丶ream on 2015/12/14. */public class LogoutServlet extends HttpServlet { @Override public void init() throws ServletException { } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getSession().invalidate(); req.getRequestDispatcher("/index.jsp").forward(req,resp); } @Override public void destroy() { super.destroy(); }}
3:显示登录人数的和当前登录用户的页面
<html><head> <title>Title</title></head><body> 欢迎:${sessionScope.username}<br> <a href="second" methods="post">退出</a><br><% ArrayList list = (ArrayList) getServletConfig().getServletContext().getAttribute("list"); out.print("在线人数"+list.size()+"<br>"); for(Object l:list){ out.print(l+"<br>"); }%></body></html>
4:实现统计登录人数的Listener
import javax.servlet.ServletContext;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import java.util.ArrayList;import java.util.List;/** * Created by D丶ream on 2015/12/14. */public class listenerTest implements HttpSessionListener,HttpSessionAttributeListener { List list = new ArrayList(); ServletContext sc; @Override // 创建session时候执行 public void sessionCreated(HttpSessionEvent httpSessionEvent) { sc = httpSessionEvent.getSession().getServletContext(); } @Override //销毁session时候执行 public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { list.remove(httpSessionEvent.getSession().getAttribute("username")); sc.setAttribute("list",list); } @Override // 在session中添加对象时触发此操作,在list中添加一个对象 public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) { list.add(httpSessionBindingEvent.getValue()); sc.setAttribute("list",list); } @Override //修改或删除session对象时执行下面方法 public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) { } @Override public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) { }}
5:退出功能的Servlet
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by D丶ream on 2015/12/14. */public class LogoutServlet extends HttpServlet { @Override public void init() throws ServletException { } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getSession().invalidate();//注销session req.getRequestDispatcher("/index.jsp").forward(req,resp);//转发 } @Override public void destroy() { super.destroy(); }}
6:最后是XML的配置
<servlet> <servlet-name>first</servlet-name> <servlet-class>com.dream.servlet.servletTest</servlet-class> </servlet> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/first</url-pattern> </servlet-mapping> <servlet> <servlet-name>second</servlet-name> <servlet-class>com.dream.servlet.LogoutServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>second</servlet-name> <url-pattern>/second</url-pattern> </servlet-mapping> <listener> <listener-class>com.dream.listener.listenerTest</listener-class> </listener>
非常基础的一个实现,更多的功能或者方法,后续会有更新
0 0
- Servlet基础(四:统计登录人数)
- 统计在线人数和登录人数
- Servlet监听器——实现在线登录人数统计小例子
- Servlet监听器——实现在线登录人数统计小例子
- (转)Servlet监听器统计在线人数
- JSP +Servlet 统计当前在线人数
- Servlet监听------------例子:统计当前在线人数
- Servlet监听器实现网站在线人数统计
- Servlet监听统计网站历史访问人数
- Servlet监听器(统计在线人数案例)
- Servlet监听器,统计网站在线人数实例
- JSP&Servlet 统计在线人数及信息
- Servlet监听案例之统计在线人数
- 统计登录成功后的在线人数
- 统计每天的登录域人数
- Asp.Net 在线(登录)人数统计
- 如何对登录人数进行统计
- java 页面在线访问人数统计和在线登录人数统计
- 大话设计模式 笔记2——策略模式
- centos 6.7 中文乱码 系统设为gbk
- 强大的浏览器插件vimperator
- MySql与SqlServer的一些常用用法的差别
- 虾米收藏音乐迁移到网易云音乐方法及工具
- Servlet基础(四:统计登录人数)
- iOS开发之网络连接检测
- [译]An Approach to Game Design
- URL之开源项目的在线网址
- could not resolve the connect identifier specified
- 绘制sin曲线
- Android:Sqlite 常见两个类SQLiteOpenHelper,SQLiteDatabase 随记
- bug 总结
- 基于背景建模方法处理视频(常用的函数)