<!-- 監聽器配置 --> <listener> <listener-class>com.oracle.com.MyListener</listener-class> </listener>
配置html
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); } }
統計java
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); } }