Filter过滤器的使用


什么是Filter的概述


Filter称为过滤器,是Servlet中最实用的技术,开发人员,通过Filter来过滤一些请求,和一些资源进行拦截



Filter称为过滤器,它是Servlet技术中最实用的技术,web开发人员通过Filter技术,对web服务器所管理的资源(JSP,Servlet,静态图片或静态html文件)进行拦截,从而实现一些特殊的功能。

Filter就是过滤从客户端向服务器发送的请求。


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中配置

 <!-- ==============过滤器================== -->
  <!-- 
   <filter>
  <filter-name>FilterDemo01</filter-name>
  <filter-class>com.filer.demo01.FilterDemo01</filter-class>
  </filter>
  
  <filter-mapping>
  <filter-name>FilterDemo01</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  -->

和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>//错误页面跳转

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值