第一、 Servlet的创建和配置
1、 创建一个Servlet需要实现javax.servlet.Filter接口,同时实现Filter的3个方法。
第一个方法时过滤器中的init()方法用于对过滤器的初始值进行处理,destroy()方法是过滤器的销毁方法,主要用于释放资源,过滤处理的业务逻辑都在doFilter()方法里,在请求过滤处理后,需要调用chain.doFilter(request,response)方法将请求传递给下一个过滤器或者目标资源(相当于放行)。
2、过滤的配置(其实过滤器和servlet差不多)
首先我们要声明过滤对象
其次我们创建过滤器映射。
配置代码在下面:
//声明过滤器对象 <filter> <filter-name>CountFilter</filter-name> <filter-class>com.luo.filter.CountFilter</filter-class> <init-param> <param-name>count</param-name> <param-value>0</param-value> </init-param> </filter> //过滤器映射 <filter-mapping> <filter-name>CountFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
下面是过滤器类代码和jsp代码:
类代码:
1 package com.luo.filter; 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.ServletContext; 9 import javax.servlet.ServletException; 10 import javax.servlet.ServletRequest; 11 import javax.servlet.ServletResponse; 12 import javax.servlet.http.HttpServletRequest; 13 14 public class CountFilter implements Filter { 15 //来访数量 16 private int count; 17 18 @Override 19 public void destroy() { 20 // TODO Auto-generated method stub 21 22 } 23 24 @Override 25 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 26 throws IOException, ServletException { 27 28 count++; 29 HttpServletRequest req = (HttpServletRequest)request; 30 ServletContext context = req.getSession().getServletContext(); 31 context.setAttribute("count", count); 32 chain.doFilter(request, response); 33 34 } 35 36 @Override 37 public void init(FilterConfig filterConfig) throws ServletException { 38 //获取配置文件中的初始化参数 39 String param = filterConfig.getInitParameter("count"); 40 count = Integer.valueOf(param); 41 42 } 43 44 }
jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 你好,你是本站${count }访客。 </body> </html>
这样一个简单的访客计数就通过过滤器简单完成了,不会的私信我。愿意为你解答。