博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域请求/SpringMVC拦截器
阅读量:4699 次
发布时间:2019-06-09

本文共 1749 字,大约阅读时间需要 5 分钟。

 

<!-- 开启允许跨域 -->

<mvc:cors>
<mvc:mapping path="/**"/>
</mvc:cors>


SpringMVC拦截器

简介:

SpringMVC拦截器,类似于Servlet中的filter过滤器,用于进行请求拦截和处理

常见应用场景

1、权限检查:如检测请求是否具有登录权限,如果没有直接返回到登陆页面。 

2、性能监控:用请求处理前和请求处理后的时间差计算整个请求响应完成所消耗的时间。 
3、日志记录:可以记录请求信息的日志,以便进行信息监控、信息统计等。

使用方法:

springmvc配置文件中配置:

<!-- 拦截器 -->

<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/**" />
    <bean class="com.thundersoft.interceptor.AuthInterceptor"/>
  </mvc:interceptor>
</mvc:interceptors>

 

2、实现接口并继承方法(可以同时包含多个实现类)

public class myInterceptor implements HandlerInterceptor{ @Override public boolean preHandler(HttpServletRequest request, HttpServletResponse response, Object obj)throws Exception{ /*该方法将在请求处理之前进行调用,只有该方法返回true,才会继续执行后续的Interceptor和Controller,当返回值为true 时就会继续调用下一个Interceptor的preHandle 方法,如果已经是最后一个Interceptor的时候就会是调用当前请求的Controller方法;*/ } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object obj,Exception e)throws Exception { /*该方法将在请求处理之后,DispatcherServlet进行视图返回渲染之前进行调用,可以在这个方法中对Controller 处理之后的ModelAndView 对象进行操作。*/ } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,Object arg2,ModelAndView arg3) throws Exception { /*该方法也是需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行,该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行。用于进行资源清理。*/ } }

执行顺序

1、单个实现类的执行顺序

preHandler -> Controller -> postHandler -> model渲染-> afterCompletion

2、多个实现类的执行顺序

———————preHandler1——————- 

———————preHandler2——————- 
———————preHandler3——————- 
———————–Controller——————— 
———————postHandler3—————— 
———————postHandler2—————— 
———————postHandler1—————— 
———————postHandler1—————— 
——————afterCompletion3—————- 
——————afterCompletion2—————- 
——————afterCompletion1—————-

 

转载于:https://www.cnblogs.com/yplq/p/9441307.html

你可能感兴趣的文章
如何利用 Visual Studio 自带工具提高开发效率
查看>>
【ASP.NET Web API教程】3.4 HttpClient消息处理器
查看>>
单点登录解决方案-CAS
查看>>
Qt-连续容器及迭代器
查看>>
截取字符串
查看>>
机器学习读书笔记(一)k-近邻算法
查看>>
设计类时需要注意的6个地方
查看>>
线程6-线程池
查看>>
使用 EclEmma 进行覆盖测试
查看>>
结组开发项目(TD学生助手)
查看>>
编辑距离
查看>>
我的Spring MVC第一个应用
查看>>
po3580SuperMemo(splay)
查看>>
全局锁实现
查看>>
有上下界的可行流
查看>>
EasyUI系列学习(一)-入门
查看>>
jquery ajax 调用webservice以及跨域问题
查看>>
一些概念
查看>>
Firefox 修改User Agent
查看>>
十年北漂,一个软件“攻城狮”到职业养鸡人的心路历程
查看>>