拦截器

是指通过统一拦截浏览器向服务器发送的请求并进行增强的东西。主要应用例如:编码,权限验证。

过滤器

依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等。类似公路上的收费站。

共同点

抛开细节,过滤器和拦截器的功能非常相似。

实现一个拦截器,

1.实现HandlerInterceptor接口,实现三个方法。

2.注册拦截器,springboot是编写一个配置类继承WebMvcConfigurerAdapter重写addInterceptors方法注册

3.如果需要配置拦截规则,可以自行配置,参考官网文档把。

 1 package com.example.demo;
 2 
 3 import org.springframework.web.servlet.HandlerInterceptor;
 4 import org.springframework.web.servlet.ModelAndView;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 /**
10  * Created by 20160216 on 2018/2/8.
11  */
12 public class SessionInterceptor implements HandlerInterceptor
13 {
14     @Override
15     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
16         System.out.println("uri="+request.getRequestURI());
17         //登录不做拦截
18         if(request.getRequestURI().equals("/userbg/login") || request.getRequestURI().equals("/user/login_view"))
19         {
20             return true;
21         }
22         //验证session是否存在
23         Object obj = request.getSession().getAttribute("_session_user");
24         if(obj == null)
25         {
26             response.sendRedirect("/user/login_view");
27             return false;
28         }
29         return true;
30     }
31 
32     @Override
33     public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
34 
35     }
36 
37     @Override
38     public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
39 
40     }
41 }
定义拦截器

相关文章:

  • 2021-10-27
  • 2021-07-15
  • 2021-04-21
  • 2022-12-23
  • 2022-01-25
  • 2021-04-26
猜你喜欢
  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
  • 2021-08-26
  • 2022-01-16
  • 2022-12-23
相关资源
相似解决方案