第一、 Servlet的创建和配置
1、 创建一个Servlet需要实现javax.servlet.Filter接口,同时实现Filter的3个方法。
第一个方法时过滤器中的init()方法用于对过滤器的初始值进行处理,destroy()方法是过滤器的销毁方法,主要用于释放资源,过滤处理的业务逻辑都在doFilter()方法里,在请求过滤处理后,需要调用chain.doFilter(request,response)方法将请求传递给下一个过滤器或者目标资源(相当于放行)。
2、过滤的配置(其实过滤器和servlet差不多)
首先我们要声明过滤对象
其次我们创建过滤器映射。
配置代码在下面:
//声明过滤器对象//过滤器映射 CountFilter com.luo.filter.CountFilter count 0 CountFilter /*
下面是过滤器类代码和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 @Override19 public void destroy() {20 // TODO Auto-generated method stub21 22 }23 24 @Override25 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 @Override37 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+"/";%>My JSP 'index.jsp' starting page 你好,你是本站${count }访客。
这样一个简单的访客计数就通过过滤器简单完成了,不会的私信我。愿意为你解答。