spingBoot-自定义过滤器
Posted cx987514451
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spingBoot-自定义过滤器相关的知识,希望对你有一定的参考价值。
package com.cx.springboot.filters; 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.annotation.WebFilter; /** * * @作者 陈先生 * @创建时间 2018年6月23日 * @功能描述 自定义过滤器 , 验证登陆信息 */ @WebFilter(urlPatterns = "/app/*" ) //urlPatterns 配置拦截的路径, 支持多配置 public class LoginFilter implements Filter { /** * 容器销毁时调用 */ @Override public void destroy() { System.err.println("容器销毁。"); } /** * 请求被拦截时调用 */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { System.err.println("拦截到请求 !" ); String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); if("admin" .equals(name) && "123" .equals(pwd)){ //放行, 执行请求或后续的过滤器 filterChain.doFilter(request, response); } else{ //直接返回 或者重定向到登录页面 return ; } } /** * 容器启动时调用 */ @Override public void init(FilterConfig arg0) throws ServletException { System.err.println("容器启动。"); } }
1) 创建类 实现 Filter 接口, 注意是import javax.servlet.Filter; 包下的Filter
2) 实现接口的三个方法
//容器销毁时调用
public void destroy() {}
//url被拦截时调用,处理业务逻辑
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {}
//容器初始化时调用
public void init(FilterConfig arg0) throws ServletException {}
3)配置需要过滤路径
支持多个路径的配置
@WebFilter(urlPatterns = {"/add/*,"/update/*,"/del/*"} )
springBoot支持这种配置嘛? 测试不支持!
@WebFilter(urlPatterns = "/app/get*" )
4) 配置servlet 3.0 的拦截器扫描
@ServletComponentScan(basePackages={"com.cx.springboot.filters"})
public class Application1 {}
在启动类加入@ServletComponentScan 注解, 同时建议配置basePackages属性, 指定需要扫描的包,
默认不设置的话会扫描所有的包,同时basePackages 属性也是支持多配置的
以上是关于spingBoot-自定义过滤器的主要内容,如果未能解决你的问题,请参考以下文章