本文共 1779 字,大约阅读时间需要 5 分钟。
什么是Filter的概述
Filter称为过滤器,是Servlet中最实用的技术,开发人员,通过Filter来过滤一些请求,和一些资源进行拦截
Filter称为过滤器,它是Servlet技术中最实用的技术,web开发人员通过Filter技术,对web服务器所管理的资源(JSP,Servlet,静态图片或静态html文件)进行拦截,从而实现一些特殊的功能。
Filter就是过滤从客户端向服务器发送的请求。
Filter的创建和销毁是由web服务器负责。Web应用程序启动的时候,web服务器创建Filter的实例对象。并调用其init方法进行初始化(filter对象只会创建一次,init方法也只会执行一次)。
每次filter进行拦截的时候,都会执行doFilter的方法。
当服务器关闭的时Filter过滤器的使用步骤
第一步:
package com.filer.demo02;import 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;public class FilterDemo01 implements Filter { /** * 我是拦截器的初始化 */ @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub System.out.println(" 我是拦截器的初始化"); } /** * 我是拦截的功能实现部分 */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub System.out.println("我是拦截的功能实现部分"); //不拦截你了:放行 chain.doFilter(request, response); } /** * 我是拦截器的销毁部分 */ @Override public void destroy() { // TODO Auto-generated method stub System.out.println("我是拦截器的销毁部分"); }}
第二步:web.xml中配置
和servlet的配置很像
重点掌握<url-pattern>和<dispatcher>的取值、作用。
【第一弹】:<url-pattern>用来配置Filter过滤哪些路径下的请求,路径取值和配置Servlet一样。
完全路径:以/开头;例如:/aaa /bbb/ccc
目录匹配:以/开头,以*结尾;例如:/* /aaa/*
扩展名匹配:以*开头,以.xxx结尾;例如:*.a *.do *.abc
注意:不能/*.xxx;例如:/*.do /*.abc
【第二弹】<dispatcher>用来配置是拦截什么类型的请求(直接访问、请求转发、请求包含、错误页面跳转),有如下取值:
<dispatcher>REQUEST</dispatcher>//直接访问(浏览器访问服务器的请求) <dispatcher>FORWARD</dispatcher>//请求转发 <dispatcher>INCLUDE</dispatcher>//请求包含(动态包含) <dispatcher>ERROR</dispatcher>//错误页面跳转 |
转载地址:http://bvjqb.baihongyu.com/