首页 > 其他分享 >拦截器

拦截器

时间:2023-04-02 18:57:43浏览次数:23  
标签:控制器 拦截器 请求 接口 Controller 方法

1、拦截器的基本概念

  拦截器是 SpringBoot 的一个强大的控件,它可以使得程序在进入控制器之前做一些操作,或在控制器方法完成后、甚至是在视图渲染时进行操作,常用于对控制器方法进行预处理和后处理,如进行登录、权限验证问题的处理。   拦截器和过滤器的概念相似。过滤器是 Servlet 规范中的一部分,任何 Java Web工程都可以使用。拦截器是 SpringMVC 框架的,只有使用了 SpringMVC 框架的工程才能使用。过滤器在 urlpattern 中配置了/*之后,可以对所有要访问的资源拦截,但是拦截器只会拦截访问控制器的 url。它是 AOP 思想的具体应用。   SpringMVC 中提供了一个 HandlerInterceptor 接口,所有的拦截请求都是通过该接口来实现的。HandlerInterceptor 接口中定义了三个方法,可以通过这三个方法来对用户的请求进行拦截处理。   (1)preHandle 方法:该方法在请求处理之前进行调用,返回值是布尔值 Boolean: 返回为 false: 表示不放行,后续的 Interceptor 和 Controller 都不能执行; 返回值为 true: 表示放行,会继续调用下一个 Interceptor 的 preHandle 方法,或当前请求的 Controller 方法。 (2)postHandle 方法:即在当前请求进行处理之后,也就是 Controller 方法调用之后执行,但是它会在 DispatcherServlet 进行视图返回渲染之前被调用,所以可以在这个方法中对 Controller 处理之后的 ModelAndView 对象进行操作。 (3)afterCompletion 方法:该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行。这个方法的主要作用是用于进行资源清理工作的。   2、拦截器的应用步骤   在实际的项目中,用户并不是都可以访问项目中所有的页面或控制器中的方法,一般只有当用户成功登录了之后,才允许访问相关页面。这种验证用户在访问一些页面时,是否已登录的判断,就可以用拦截器来完成。具体实现步骤如下。 (1)设计拦截器类,继承 HandlerInterceptor 接口; (2)创建一个配置类实现 WebMvcConfigurer 接口,重写 addInterceptors 方法,配置拦截器。

标签:控制器,拦截器,请求,接口,Controller,方法
From: https://www.cnblogs.com/qiqi-yi/p/17281009.html

相关文章

  • 拦截器
    拦截器拦截器是一种动态拦截方法调用的机制作用在指定的方法调用前后预先执行设定后的代码阻止原始方法的执行拦截器与过滤器的区别归属不同:Filter属于servlet技术,Interceptor属于SpringMVC技术拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访......
  • uni.request拦截器
    uni.requset1uni.request({2url:'',//地址3data:{},//请求body4header:{},//请求header5method:'',//请求方式'GET'/'POST'/'PUT'/'DELETE'6success:(res)=>{},//请求成功回调7fail:......
  • java中拦截器的使用
    实现类packagecn.com.yusys.yusp.mcp.interceptor;importcn.com.yusys.yusp.commons.session.context.UserContext;importcn.com.yusys.yusp.commons.session.user......
  • 【SpringMVC-03】拦截器+类型转换器+数据校验以及异常映射,文件上传和下载
    第一章拦截器(重点)1.概念1.1使用场景1.1.1生活中坐地铁的场景为了提高乘车效率,在乘客进入站台前统一检票:1.1.2程序中的校验登录场景在程序中,使用拦截器在请求到达具体......
  • SpringMVC拦截器
    当存在多个Interceptor时,拦截顺序是根据spring-mvc.xml中的拦截器配置顺序来的:  拦截器中定义的三个方法:preHandle(req,res,obj):在目标方法执行前执行postHandle(......
  • 过滤器与拦截器
    1.过滤器跟拦截器的区别在说拦截器之前,不得不说一下过滤器,有时候往往被这两个词搞的头大。其实我们最先接触的就是过滤器,还记得web.xml中配置的<filter>吗~你应该知道sp......
  • Spring MVC拦截器+注解方式实现防止表单重复提交
    原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过。注,如果是集群的方式,则需要将tok......
  • JSP显示拦截器的ActionContext内容
    拦截器有:atx.put("login_message","请登陆,再使用系统.");jsp显示message用:Errors:${login_message}。......
  • 过滤器和拦截器
    介绍过滤器和拦截器都是基于AOP面向切面编程思想实现的,用来解决项目中某一类问题的两种“工具”。   过滤器与拦截器的区别 过滤器关注的是web请求,对所有访问进......
  • 【SpringMVC整合MyBatis】springmvc拦截器-定义和配置
    拦截器1.拦截定义定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。packagecn.edu.hpu.ssm.interceptor;importjavax.servlet.http......