java web用监听器listener简单的实现在线统计人…
2018-06-18 02:42:09来源:未知 阅读 ()
今天又重新学习了java web的基础 监听器技术,用sessionListener简单的实现了网页统计在线人数 (有一个bug就是当关闭网页的时候 session不会关闭依旧存在,除非关闭服务器),代码如下(前端网页代码就不显示了):
LoginServlet.java:
1 import javax.servlet.ServletException; 2 import javax.servlet.annotation.WebServlet; 3 import javax.servlet.http.HttpServlet; 4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpServletResponse; 6 import javax.servlet.http.HttpSession; 7 import java.io.IOException; 8 9 @WebServlet(name = "LoginServlet",urlPatterns = "/login") 10 public class LoginServlet extends HttpServlet { 11 @Override 12 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 13 String username=request.getParameter("username"); 14 HttpSession session=request.getSession(); 15 session.setAttribute("username",username); 16 //重新定向到index.jsp 17 response.sendRedirect("index.jsp"); 18 } 19 20 @Override 21 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 22 23 } 24 }
ExitServlet.java:
1 package servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import javax.servlet.http.HttpSession; 9 import java.io.IOException; 10 11 @WebServlet(name = "ExitServlet",urlPatterns = "/exit") 12 public class ExitServlet extends HttpServlet { 13 @Override 14 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 15 //从session中移除loginName参数 16 response.getWriter().write("2222"); 17 HttpSession session=request.getSession(); 18 session.removeAttribute("username"); 19 //重新定向到login.jsp 20 response.sendRedirect("login.jsp"); 21 } 22 23 @Override 24 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 25 doPost(request, response); 26 } 27 }
OnlineListener.java:
1 package listener; 2 3 import bean.User; 4 5 import javax.servlet.ServletContextEvent; 6 import javax.servlet.ServletContextListener; 7 import javax.servlet.http.HttpSessionAttributeListener; 8 import javax.servlet.http.HttpSessionEvent; 9 import javax.servlet.http.HttpSessionListener; 10 import javax.servlet.http.HttpSessionBindingEvent; 11 12 @javax.servlet.annotation.WebListener() 13 public class OnlineListener implements ServletContextListener, 14 HttpSessionListener, HttpSessionAttributeListener { 15 public OnlineListener() { 16 } 17 @Override 18 public void contextInitialized(ServletContextEvent sce) { 19 20 } 21 @Override 22 public void contextDestroyed(ServletContextEvent sce) { 23 24 } 25 @Override 26 public void sessionCreated(HttpSessionEvent se) { 27 System.out.println("会话已创建"); 28 } 29 @Override 30 public void sessionDestroyed(HttpSessionEvent se) { 31 System.out.println("会话已销毁"); 32 } 33 34 @Override 35 public void attributeAdded(HttpSessionBindingEvent sbe) { 36 //向session范围中添加一个用户 37 User.addUser(String.valueOf(sbe.getValue())); 38 System.out.println("session增加属性为"+sbe.getName()+"值为:"+sbe.getValue()); 39 } 40 @Override 41 public void attributeRemoved(HttpSessionBindingEvent sbe) { 42 //将session会话中的用户移除 43 User.removeUser(String.valueOf(sbe.getValue())); 44 System.out.println(sbe.getValue()+"属性已被移除"); 45 } 46 @Override 47 public void attributeReplaced(HttpSessionBindingEvent sbe) { 48 //获取旧的属性值 49 String oldValue=String.valueOf(sbe.getValue()); 50 //获取新的属性值 51 String newValue=String.valueOf(sbe.getSession().getAttribute(sbe.getName())); 52 //移除旧的属性,添加新的属性 53 User.removeUser(oldValue); 54 User.addUser(newValue); 55 } 56 }
用两个不同的浏览器运行结果如下图所示:
项目工程目录如下图:
(坚持学习!努力加油!勉励自己)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java基础笔记1
下一篇:java lock锁住特定对象
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash