16.集成过滤器Filter

1.Filter简介
Filter是过滤器的英文名称,它是处于客户端和服务器资源文件之间的一道过滤网。通过Filter可实现URL级别的权限访问控制、敏感词汇过滤以及响应信息压缩等一些高级功能。

2.全局访问过滤器开发
复制一份“集成MyBatis”的项目代码,修改项目名称为filter。然后在项目目录“/src/main/java/com/leichuangkj/filter”下新建filter目录,并在filter目录下新建RequestFilter类,具体代码如下。

@WebFilter(filterName = "RequestFilter", urlPatterns = "/*")
public class RequestFilter implements Filter{
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("---------->>> init");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                         FilterChain filterChain) throws IOException, ServletException {
        System.out.println("---------->>> doFilter");
        System.out.println("请求ip:" + servletRequest.getRemoteAddr());
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {
        System.out.println("---------->>> destory");
    }
}
  • @WebFilter:用于将一个类声明为过滤器,该注解将会在应用部署时被容器处理,容器根据具体的属性配置将相应的类部署为过滤器。这样在Web应用中使用监听器时,便不需要在web.xml中配置监听器的描述信息。
  • filterName:指定过滤器的name,等价于XML配置文件中的filter-name标签。
  • urlPatterns:指定过滤器的URL匹配模式,等价于XML配置文件中的url-pattern标签。

3.启动项目
在启动类FilterApplication上添加注解@ServletComponentScan,然后启动项目。

@MapperScan(basePackages = "com.leichuangkj.filter.dao.mapper")
@ServletComponentScan
@SpringBootApplication
public class FilterApplication {
	public static void main(String[] args) {
		SpringApplication.run(FilterApplication.class, args);
	}
}
  • @ServletComponentScan:使用该注解后,Servlet、Filter、Listener可直接通过@WebServlet、@WebFilter和@WebListener注解自动注册。

4.测试
启动项目,然后在postman中请求“http://localhost:8080/user/findByName”,可在IDEA控制台查看到如下信息。
在这里插入图片描述

5.工程目录结构
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值