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-自定义过滤器的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段(vue主模板)

VSCode自定义代码片段——声明函数

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段8——声明函数