标签:拦截器 springboot org springframework 使用 过滤器 import public
目录
过滤器,听名字就知道,可以起到过滤的作用,至于怎么过滤呢?我们来看看
编写自定义过滤器
package own.study.interceptor;
import javax.servlet.*;
import java.io.IOException;
import java.util.Map;
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("请求参数:" + servletRequest.getParameter("age"));
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
配置过滤器
package own.study.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import own.study.interceptor.MyFilter;
import own.study.interceptor.MyInrterceptor;
import javax.servlet.Filter;
@Configuration
public class MyWebMvcConfig extends WebMvcConfigurationSupport {
@Autowired
private MyInrterceptor myInrterceptor;
// @Override
// protected void addInterceptors(InterceptorRegistry registry) {
// registry.addInterceptor(myInrterceptor).addPathPatterns("/do*");
// super.addInterceptors(registry);
// }
@Bean
public FilterRegistrationBean myFilterInfo () {
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
bean.setFilter(new MyFilter());
bean.addUrlPatterns("/doCheck");
return bean;
}
}
注意,这里不是重写的方法!
测试使用
可以看到,访问doCheck的时候被拦截了,如果不想过滤的话,可以不写,或者指定路径为 /*
另外,这里不能像拦截器一样,配置 /do*,这是无效的,不信试试?
与拦截器的对比
1、与拦截器进行对比,在个人看来,拦截器的功能更加强大,过滤器能做的事情,拦截器也能做,而且拦截器更灵活
2、拦截器可以进行注入调用,比如我在拦截器注入一个service,那我就可以进行相应的操作,but,过滤器就不行咯
从使用上来说,个人是倾向于拦截器的使用的,当然,具体怎么使用,看各位开发者自己的抉择
标签:拦截器,springboot,org,springframework,使用,过滤器,import,public 来源: https://blog.csdn.net/weixin_46097842/article/details/118250252
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。