用session統計某個網頁的訪問人數(由於我還不會js,因此就作了個簡易版本的)html
一、建立Session監聽器,每建立了一個Session對象就執行監聽類中·的sessionCreated方法。java
package com.ykh.session; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class SeesionLister 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); } }
二、具體實現的servlet:session
package com.ykh.session; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet implementation class SeesionTest */ @WebServlet("/Test") public class SeesionTest extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public SeesionTest() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub req.setCharacterEncoding("utf-8"); doPost(req,resp); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub //doGet(request, response); 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); } }
三、效果:ide
連接:https://pan.baidu.com/s/1F4R-jdC2bhKO7iTmzaOyWA
提取碼:whkm
複製這段內容後打開百度網盤手機App,操做更方便哦3d