上篇已将介绍完了,下面来实践操作走一个:
首先在名为"com.caiduping"的包中创一个MyFilter的对象:
1 package com.caiduping;
2
3 import java.io.IOException;
4
5 import javax.servlet.Filter;
6 import javax.servlet.FilterChain;
7 import javax.servlet.FilterConfig;
8 import javax.servlet.ServletException;
9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.ServletContext;
13
14 public class MyFilter implements Filter {
15 private int count;
16 @Override
17 public void destroy() {
18 // TODO Auto-generated method stub
19
20 }
21 //过滤处理方法
22 @Override
23 public void doFilter(ServletRequest request, ServletResponse response,
24 FilterChain chain) throws IOException, ServletException {
25 // TODO Auto-generated method stub
26 count++;
27 //将ServletRequest转化为HttpServletRequest
28 HttpServletRequest re=(HttpServletRequest) request;
29 //获取ServletContext
30 ServletContext Context=re.getSession().getServletContext();
31 //将数值存放于ServletContext中
32 Context.setAttribute("count", count);
33 //向下传递过滤器
34 chain.doFilter(request, response);
35 }
36 //初始化方法
37 @Override
38 public void init(FilterConfig filterConfig) throws ServletException {
39 // TODO Auto-generated method stub
40 //获得初始化参数
41 String paramter=filterConfig.getInitParameter("count");
42 //将字符串转化为int型
43 count=Integer.valueOf(paramter);
44 }
45
46 }
web.xml中配置为:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="3.0" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 7 <display-name></display-name> 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file> 10 </welcome-file-list> 11 <!-- 过滤声明 --> 12 <filter> 13 <filter-class>com.caiduping.MyFilter</filter-class> 14 <filter-name>count</filter-name> 15 <init-param> 16 <param-name>count</param-name> 17 <param-value>500</param-value> 18 </init-param> 19 </filter> 20 <!-- 过滤映射 --> 21 <filter-mapping> 22 <filter-name>count</filter-name> 23 <!-- 过滤URL映射 --> 24 <url-pattern>/*</url-pattern> 25 </filter-mapping> 26 27 </web-app>
run:(刷新逐渐递增)
