美文网首页
SpringMVC拦截器 配置及使用

SpringMVC拦截器 配置及使用

作者: ChildeChan | 来源:发表于2017-12-11 15:04 被阅读0次

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

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

    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拦截器 配置及使用

          本文链接:https://www.haomeiwen.com/subject/yypiixtx.html