Java过滤器

过滤器介绍

过滤器是一个用于拦截在数据源和数据目的地之间消息的一个对象

过滤器功能

  • 分析请求,将请求发送给指定的资源或自己创建一个响应返回
  • 在请求到达服务器端前处理请求,设置请求信息,将请求封装成符合规则的对象
  • 在响应到达客户端前处理响应,将响应封装成符合规则的对象

过滤器执行

  • 过滤器处理请求采取以下3种行动之一
    ----.过滤器自身产生一个响应,返回给客户端
    ----.把请求转发给过滤器链中的下一个过滤器,如果是最后一个过滤器则将请求转发给请求指定资源
    ----.把请求转发到另一资源

Filter接口

  • init()方法: 初始化
    Servlet容器最先调用过滤器的init()方法,初始化过滤器,生命周期中只调用一次
  • doFilter()方法: 执行
    Servlet容器调用doFilter()方法处理请求
  • destroy()方法: 销毁
    Servlet容器最后调用destroy()方法,释放过滤器所占的资源

过滤器API

  • 过滤器相关接口、类:
    在这里插入图片描述

简单过滤器代码:

package com.Filter;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;
public class DemoFilter implements Filter{
	@Override
	public void destroy() {
		System.out.println("销毁方法");
	}
	@Override
	public void doFilter(ServletRequest requset, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		System.out.println("执行过滤器");
		//业务逻辑
		chain.doFilter(requset,response);
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		//获取web.xml文件中<Filter>元素初始化
		System.out.println("初始化方法");
	}
}

配置过滤器web.xml

  <filter>
    <filter-name>DemoFilter</filter-name>
    <filter-class> com.Filter.DemoFilter </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>DemoFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

Filter过滤器链

  • Web容器加载的顺序:web.xml文件中配置的Filter的倒序
  • 拦截执行顺序:web.xml文件中配置的Filter的正序
  • 销毁顺序:web.xml文件中配置的Filter的倒序
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值