SpringMVC拦截器 配置及使用

在对用户是否登陆及用户是否具有权限进行操作时 需要引入拦截器对所有页面进行拦截 判断是否具有权限进行操作。

(当然对所有页面写单独一段权限验证也是可以的,只不过太过复杂,所以使用拦截器是最合适的)

SpringMvc 本身就是一个拦截器,当然也有其内置的拦截器。

拦截器的方法继承于 HandlerInterceptorAdapter 这个抽象类(当然WebRequestHandlerInterceptorAdapter也可以实现拦截器操作)。

里面有四个方法  preHandlepostHandleafterCompletionafterConcurrentHandlingStarted



抽象类里面是这样子的。

@Override

/**当然我们最常用的当然是preHandler。

* 可以看到preHandle方法的返回值是一个Boolean类型的。

* 如果返回为true 那么就表示通过了拦截器,可以继续进行下一步操作,如果为false则未通过不能继续进行操作。

*/

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

return true;

}

/**

* postHandle的执行是在controller层的方法执行完毕,在dispatchservlet返回视图渲染之前执行。

* 也就是preHandler 是在controller层之前执行,postHandler是在controller层之后执行。

*/

@Override

public void postHandle(

HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)

throws Exception {

}

/**

* afterCompletion则是在dispatchservlet返回视图渲染之后执行,主要作用是进行一些资源的清理工作。

*/

@Override

public void afterCompletion(

HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

throws Exception {

}


如果我们需要使用多个拦截器,并且对某些页面不需要进行拦截操作,我们可以在spirng -web.xml中这样配置。

mapping 标签是匹配   exclude-mapping标签是排除

bean标签里配置好拦截器对应的实体类。

这样拦截器便可以正常工作了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名: 李小娜 [嵌牛导读]: SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,...
    n184阅读 8,393评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,477评论 19 139
  • mvc:interceptors标签用于注册一个自定义拦截器或者WebRequestInterceptors。可以...
    iDeaLoO阅读 8,136评论 0 1
  • 前言:一年前看视频学习这个框架的时候做的笔记。。。现在自己看来觉得还是有点蛋疼。。。想了想还是放上来了,万一开发要...
    l_sivan阅读 3,916评论 0 7
  • 二十二块五 窗外的灯红酒绿,鞭炮声声与此刻的自己仿佛是俩个世界。 连续十多天的工...
    当郭芙蓉想起佟湘玉阅读 2,629评论 0 1