1. 程式人生 > >監聽器的應用一(統計線上人數)

監聽器的應用一(統計線上人數)

1.web,xml配置

2.監聽類的配置

3.jsp頁面的顯示

web,xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>Archetype Created Web Application</display-name>
  
  <!-- 掃描載入配置檔案 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>

classpath:spring/applicationContext-mvc.xml,
classpath:spring/applicationContext.xml,
classpath:spring/applicationContext-dataSource.xml
</param-value>
  </context-param>
  <!--log4j配置檔案開始-->  
<context-param>  
   <param-name>log4jConfigLocation</param-name>  
   <param-value>classpath:log4j.properties</param-value>  
</context-param>  
<listener>  
   <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
</listener>
<!-- webservice釋出的監聽器 -->
<listener>
      <listener-class>com.fxb.listener.MyListener</listener-class>
  </listener>
  <!-- 統計線上人數 監聽器 -->
<listener>
      <listener-class>com.fxb.listener.MyListener2</listener-class>
  </listener>

<!-- post方式提交 統一字元編碼過濾器 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- springmvc攔截所有的請求交由各個處理器 -->
  <servlet>
    <servlet-name>springMvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/applicationContext-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

</web-app>


MyListener2.java

package com.fxb.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.springframework.web.context.ContextLoaderListener;
public class MyListener2 implements HttpSessionListener{
    private int userNumber = 0;
    public void sessionCreated(HttpSessionEvent arg0) {
        userNumber++;
        arg0.getSession().setAttribute("userNumber", userNumber);
    }
    public void sessionDestroyed(HttpSessionEvent arg0) {
        userNumber--;
        arg0.getSession().setAttribute("userNumber", userNumber);
    }

}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>儲存結果</title>
<meta name="description" content="overview & stats" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
 線上人數:<%=session.getAttribute("userNumber") %><br/>
<a href="<%=basePath%>user/getList?name=付曉波">我是付曉波</a>
</body>
</html>