자바 웹 모니터 인 스 턴 스 통계 온라인 인원

본 논문 의 사례 는 자바 웹 통계 온라인 인원수 에 나타 난 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.기능 실현
온라인 인원수 를 집계 하 다
모든 사람의 sessionId,Ip,첫 로그 인 시간 표시

2.모니터 종류 활용
  • HttpSession
  • ServletRequest
  • 3.사상 실현
  • 모든 사용자 가 하나의 session 에 대응 하기 때문에 session 이 생 성 될 때마다 num++
  • 사용자 클래스(sessionID,IP,날짜)
  • 구현
  • IP 주 소 를 가 져 오 는 방법 은 request 를 사용 해 야 하기 때문에 ServletRequest 모니터
  • 를 실현 해 야 합 니 다.
  • 매번 요청 에 대응 하 는 사용자 의 생 성
  • 모든 사용 자 를 한 사용자 링크 에 넣 습 니 다
  • 링크 를 ServletRequestEvent.getServletContext().setAttribute 를 통 해 전역 변수 로 설정
  • 홈 페이지 에서 링크 를 옮 겨 다 니 며 사용자 정 보 를 읽 습 니 다.
  • 4.패키지 디 렉 터 리

    5.코드 구현
    User
    
    package entity;
    
    public class User {
     private String sessionID;
     private String ip;
     private String firstTime;
    
     public String getSessionID() {
     return sessionID;
     }
    
     public void setSessionID(String sessionID) {
     this.sessionID = sessionID;
     }
    
     public String getIp() {
     return ip;
     }
    
     public void setIp(String ip) {
     this.ip = ip;
     }
    
     public String getFirstTime() {
     return firstTime;
     }
    
     public void setFirstTime(String firstTime) {
     this.firstTime = firstTime;
     }
    
    }
    MyHttpSessionListener
    
    package listenner;
    
    import java.util.ArrayList;
    
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    import entity.User;
    import util.SessionUtil;
    
    @WebListener
    public class MyHttpSessionListener implements HttpSessionListener {
    
     private int num = 0;//    
    
     public void sessionCreated(HttpSessionEvent se) {
     num++;
     se.getSession().getServletContext().setAttribute("number", num);
     }
    
     @SuppressWarnings("unchecked")
     public void sessionDestroyed(HttpSessionEvent se) {
     num--;
     se.getSession().getServletContext().setAttribute("number", num);
    
     //          ,             
     ArrayList<User> userlist = (ArrayList<User>) se.getSession().getServletContext().getAttribute("userlist");
     if (SessionUtil.getUserBySessionID(userlist, se.getSession().getId()) != null) {
      userlist.remove(SessionUtil.getUserBySessionID(userlist, se.getSession().getId()));
     }
     }
    
    }
    MyServeltRequestListener
    
    package listenner;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    
    import javax.servlet.ServletRequestEvent;
    import javax.servlet.ServletRequestListener;
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpServletRequest;
    
    import entity.User;
    import util.SessionUtil;
    
    @WebListener
    public class MyServeltRequestListener implements ServletRequestListener {
     @SuppressWarnings("unchecked")
     public void requestInitialized(ServletRequestEvent sre) {
    
     ArrayList<User> userlist=null; 
     //          ,    ,         
     userlist= (ArrayList<User>) sre.getServletContext().getAttribute("userlist");
     if (userlist == null) {
      userlist = new ArrayList<User>();
     }
    
    
     //  request  
     HttpServletRequest request = (HttpServletRequest) sre.getServletRequest();
     //  sessionID
     String sessionID = request.getSession().getId();
     //  sessionID        ,      ,         
     if (SessionUtil.getUserBySessionID(userlist, sessionID) == null) {
      User user = new User();
      user.setSessionID(sessionID);
      user.setFirstTime(new SimpleDateFormat("YYYY-MM-DD hh:mm:ss").format(new Date()));
      user.setIp(request.getRemoteAddr());
      userlist.add(user);
     }
     //          
     sre.getServletContext().setAttribute("userlist", userlist);
     }
    }
    getUserBySessionID
    
    package util;
    
    import java.util.ArrayList;
    
    import entity.User;
    
    public class SessionUtil {
    
     //   ,  session             
     public static User getUserBySessionID(ArrayList<User> userlist, String sessionID) {
     for (int i = 0; i < userlist.size(); i++) {
      User user=userlist.get(i);
      if (user.getSessionID().equals(sessionID)){
      return user;
      }
     }
     return null;
     }
    }
    index.jsp
    
    <%@page import="entity.User"%>
    <%@page import="java.util.ArrayList"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    </head>
    <body>
           :${number}
     <hr>
     <%
     ArrayList<User> userlist = (ArrayList<User>) request.getServletContext().getAttribute("userlist");
     if (userlist != null) {
      for (int i = 0; i < userlist.size(); i++) {
    
      User user = userlist.get(i);
     %>
     sessionID:<%=user.getSessionID()%>
     <br>
     IP:<%=user.getIp()%>
     <br>
     FirstName:<%=user.getFirstTime()%>
     <hr>
     <%}}%>
    </body>
    </html>
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기