Java Web过滤器(Filter)

本文详细介绍了Java Web中的过滤器Filter,包括其工作原理、应用场景、创建及配置方法。通过示例展示了如何创建一个处理字符集编码的Filter,并讨论了过滤器的执行顺序和访问权限控制的实现。过滤器常用于自动登录、统一编码格式、权限控制和敏感字符过滤等场景。
摘要由CSDN通过智能技术生成

过滤器(Filter)


过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理
通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理

大概流程图如下

应用场景
自动登录
统一设置编码格式
访问权限控制
敏感字符过滤等

创建Filter

在Servlet中我们一般都会对request和response中的字符集编码进行配置,如果Servlet过多字符集编码发生变化时修改起码会很麻烦,这些通用的字符集编码配置等工作我们可以放到Filter中来实现。

下面我们来创建一个处理字符集编码的Filter。

右键包名—>new ---->Filter

输入过滤器名称,跟创建Servlet一样,这里我们直接使用 @WebFilter 注解,不再去web,xml中进行配置了

创建完成后默认代码,可以看到,CharsetFilter实现了Filter接口,实现了3个方法。3个方法的作用已经在注释中写清楚了

package filter;

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import java.io.IOException;

@WebFilter(filterName = "CharsetFilter")

public class CharsetFilter implements Filter {

public void destroy() {

/*销毁时调用*/

}

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {

/*过滤方法 主要是对request和response进行一些处理,然后交给下一个过滤器或Servlet处理*/

chain.doFilter(req, resp);//交给下一个过滤器或servlet处理

}

public void init(FilterConfig config) throws ServletException {

/*初始化方法 接收一个FilterConfig类型的参数 该参数是对Filter的一些配置*/

}

}

配置Filter

可配置的属性有这些

常用配置项

urlPatterns

配置要拦截的资源

以指定资源匹配。例如"/index.jsp"

以目录匹配。例如"/servlet/*"

以后缀名匹配,例如"*.jsp"

通配符,拦截所有web资源。"/*"

initParams

配置初始化参数,跟Servlet配置一样

例如

initParams = {

@WebInitParam(name = "

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值