zoukankan      html  css  js  c++  java
  • 通过session统计当前在线人数

    <!-- 监听器配置 -->
    	<listener>
    		<listener-class>com.oracle.com.MyListener</listener-class>
    	</listener>
    

      配置

    package com.oracle.com;
    
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    public class MyListener implements HttpSessionListener {
    
    	@Override
    	public void sessionCreated(HttpSessionEvent event) {
    		// System.out.println("创建了");
    		HttpSession session = event.getSession();// 获得Session对象
    		// 通过Session获得servletcontext对象
    		ServletContext servletContext = session.getServletContext();
    		/**
    		 * 1.获取num值 
    		 * 2.加1 
    		 * 3.存入servletcontext
    		 */
    		Object object = servletContext.getAttribute("num");
    		if (object == null) {
    			servletContext.setAttribute("num", 1);
    		} else {
    			Object num = servletContext.getAttribute("num");
    			int num1 = (int) num;
    			servletContext.setAttribute("num", num1 + 1);
    		}
    	}
    
    	@Override
    	public void sessionDestroyed(HttpSessionEvent event) {
    		// System.out.println("销毁了");
    		HttpSession session = event.getSession();// 获得Session对象
    		// 通过Session获得servletcontext对象
    		ServletContext servletContext = session.getServletContext();
    		/**
    		 *	1.获取num值
    		 *  2.减1 
    		 *  3.存入servletcontext
    		 */
    		servletContext.setAttribute("num", (long) servletContext.getAttribute("num") - 1);
    	}
    
    }
    

      统计

    package com.oracle.com;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    public class servletDemo5 extends HttpServlet {
    	@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.setCharacterEncoding("utf-8");
    		resp.setContentType("text/html;charset=utf-8");
    		HttpSession session = req.getSession();// 创建Session
    		// session.setMaxInactiveInterval(10);//设置失效时间10秒 不是销毁
    		PrintWriter writer = resp.getWriter();
    		ServletContext servletContext = getServletContext();
    		Object num = servletContext.getAttribute("num");
    		writer.write("在线人数:" + num);
    	}
    }
    

      

  • 相关阅读:
    【Vegas改编】发布infopath模板到sharepoint2007站点
    【Vegas原创】SBS关闭IPv6,你将会等待到天亮...
    详解Ntbackup的五种备份方式
    【Vegas原创】本地sys登录,ORA01031: insufficient privileges的解决方法
    【Vegas原创】访问owa,图片和js脚本不能正常显示和使用的解决方法
    【Vegas原创】Oracle中用sequence添加自增字段
    Key Small Business Server 2008 Log Files
    High Availability(高可靠性)技术简介
    [转载]给网游写一个挂吧(二) – 启动外挂上
    为什么到今天还要坚持写博客
  • 原文地址:https://www.cnblogs.com/john568300/p/6479480.html
Copyright © 2011-2022 走看看