如何为苏州在线网站制作一个针对深圳人才的官方平台?
摘要:苏州在线网站制作,深圳人才网官方网站,北京招聘网站建设,做网站用的字体拦截器简介 SpringMVC的拦截器Interceptor,主要是对Controller资源访问时进行拦截的基本操作的技术&
苏州在线网站制作,深圳人才网官方网站,北京招聘网站建设,做网站用的字体拦截器简介
SpringMVC的拦截器Interceptor#xff0c;主要是对Controller资源访问时进行拦截的基本操作的技术#xff0c;当然拦截后可以进行权限控制#xff0c;功能增强等都是可以的。拦截器类似于JavaWeb开发中的Filter#xff0c;他们之间的区别如下图所示 Filter技术…拦截器简介
SpringMVC的拦截器Interceptor主要是对Controller资源访问时进行拦截的基本操作的技术当然拦截后可以进行权限控制功能增强等都是可以的。拦截器类似于JavaWeb开发中的Filter他们之间的区别如下图所示 Filter技术Interceptor技术范畴JavaWeb原生技术SpringMVC框架技术拦截/过滤范畴对所有请求都可以过滤包括如何Servlet、JSP、其它资源等只有进行了SpringMVC管理的范畴的才拦截主要拦截对于Controller的请求执行时机早于任何Servlet执行 晚于DispatcherServlet执行 实现了HandlerInterceptor接口且被Spring管理的Bean都是拦截器 方法名参数返回值解释preHandleHttpServletRequest requestbrHttpServletResponse responsebrObject handlerboolean在请求处理之前被调用。返回值表示是否继续执行后续的拦截器和处理器如果返回 true或中断请求处理如果返回 false。可用于登录验证、权限检查等前置处理。postHandle HttpServletRequest requestbr HttpServletResponse responsebr Object handlerbr ModelAndView modelAndView 无请求处理之后、视图渲染之前被调用。可以在该方法中对请求处理结果进行修改或增加一些公共数据供视图渲染使用。Handler是拦截到的Controller方法处理器modelAndView是返回的模型视图对象afterCompletion HttpServletRequest requestbr HttpServletResponse responsebr Object handlerbr Exception ex 无在整个请求完成之后被调用包括视图渲染完毕。可用于进行一些清理工作如资源回收、记录请求日志等。Handler是拦截到的Controller方法处理器ex是异常对象
拦截器快速入门
创建一个拦截器类实现HandlerInterceptor接口然后在SpringMVC配置文件中对接口类进行注册创建拦截器实现类 package com.example.Interceptor;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Interceptor01 implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandler...);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandler....);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion....);}
}配置文件
拦截器执行顺序
当有多个拦截器配置在SpringMVC框架的配置文件中时执行顺序就是配置顺序拦截器中方法具体的执行顺序如下图 上述是preHandler结果返回的都是true的运行顺序的结果 上述某一个preHandler返回结果为false时。
拦截器执行原理 当客户端发出请求之后SpringMVC框架通过处理器映射器HandlerMapping将请求路径与对应资源匹配起来原先是通过请求地址匹配到Conreoller控制器现在再加入Interceptror后在请求到控制器之前处理器映射器HandlerMapping会根据拦截器的地址来处理对应的请求一个请求可能被多个拦截器所拦截但是一个请求只能被一个控制器所处理然后RequestMappingHandlerMapping将请求可以访问的资源进行封装为HandlerExecutionChain进行返回。然后再执行拦截器中的方法。
