黑马程序员技术交流社区
标题:
JavaWeb
[打印本页]
作者:
付家辉
时间:
2015-3-14 12:53
标题:
JavaWeb
JavaWeb应用中创建过滤器的步骤和代码:
作者:
付家辉
时间:
2015-3-15 13:53
步骤:1建立一个实现Filter接口的类并定义3个方法:doFilter,init和destroy
2:在doFilter方法中放入过滤器行为.doFilter方法的第一个参数为ServletRequest对象,此对象给过滤器提供了对进入的信息(包括表单数据,cookie和HTTP请求头)的完全访问:第二个参数为ServletResponse,通常在简单的过滤器中,最后一个参数为FilterChain,此参数用来调用Servlet或JSP页。
3:调用FilterChain对象的doFilter方法,Filter接口的doFilter方法取一个FilterChain对像作为他的一个参数,在调用此对象的doFilter方法是,激活下一个相关的过滤器,如果没有另一个过滤器与Servlet或JSP页面相关,则Servlet或JSP页面被激活。
4:对相应的Servlet和JSP页面注册过滤器,在部署描述符文件web.xml中使用filter和filtermapping元素。
5:禁用激活器Servlet,防止用户利用默Servlet URL绕过过滤器设置。
mport java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.util.*;
public class PageTimersFilter implements Filter {
FilterConfig filterConfig = null;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
Date startTime,endTime;
double duration = 0;
startTime = new Date();//记下开始时间
chain.doFilter(request,response);//将处理权转交给下一处理器
endTime = new Date();//记下结束时间
duration = endTime.getTime()-startTime.getTime();//计算所耗费时间
System.out.println("本次请求/响应耗时:"+duration+"毫秒!");
}
public void destroy() {
this.filterConfig = null;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2