實現網站在線訪問計數器功能,網站的初始值設置爲1000html
(1)建立CountFilter的類,實現javax。servlet.Filter接口,是一個過濾器對象,經過過濾器實現統計網站人數功能:java
package com.lixiyu; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; /** * 統計過濾器 * @author lixiyu */ public class CountFilter implements Filter { // 來訪數量 private int count; @Override public void init(FilterConfig filterConfig) throws ServletException { // 獲取初始化參數 String param = filterConfig.getInitParameter("count"); // 將字符串轉換爲int count = Integer.valueOf(param); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 訪問數量自增 count ++; // 將ServletRequest轉換成HttpServletRequest HttpServletRequest req =(HttpServletRequest)request; // 獲取ServletContext ServletContext context =req.getSession().getServletContext(); // 未來訪數量值放入到ServletContext中 context.setAttribute("count", count); // 向下傳遞過濾器 chain.doFilter(request, response); } @Override public void destroy() { } }
(2)配置已建立的CountFilter對象,設置初始值爲1000,配置web.xml:web
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <filter> <filter-name>CountFilter</filter-name> <filter-class>com.lixiyu.CountFilter</filter-class> <init-param> <param-name>count</param-name> <param-value>1000</param-value> </init-param> </filter> <filter-mapping> <filter-name>CountFilter</filter-name> <url-pattern>/index.jsp</url-pattern> </filter-mapping> </web-app>
(3)建立程序首頁index.jsp,在該頁面經過JSP內置對象Application獲取計數器的值:app
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>人數統計</title> </head> <body> <h2> 歡迎光臨,<br> 您是本站的第【 <%=application.getAttribute("count") %> 】位訪客! </h2> </body> </html>