zoukankan      html  css  js  c++  java
  • 023 SpringMVC拦截器

    一:拦截器的HelloWorld

    1.首先自定义拦截器

      只要实现接口就行。

     1 package com.spring.it.interceptors;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.web.servlet.HandlerInterceptor;
     7 import org.springframework.web.servlet.ModelAndView;
     8 
     9 public class FirstInterceptor implements HandlerInterceptor{
    10 
    11     @Override
    12     public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
    13             throws Exception {
    14         System.out.println("afterCompletion");
    15         
    16     }
    17 
    18     @Override
    19     public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
    20             throws Exception {
    21         System.out.println("postHandle");
    22         
    23     }
    24 
    25     @Override
    26     public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
    27         System.out.println("preHandle");
    28         return true;
    29     }
    30 }

    2.自定义拦截器

    1 <mvc:interceptors>
    2         <!-- 配置自定义拦截器 -->
    3         <bean class="com.spring.it.interceptors.FirstInterceptor"></bean>
    4     
    5         <!-- 配置LocaleChangeInterceter拦截器 -->
    6         <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
    7     </mvc:interceptors>

    3.效果

      重启,然后随便点一个链接

      

    4.说明

      preHandler:如果返回true,则继续调用后续的拦截器和目标方法

            如果返回false,则不再进行调用后续的拦截器和目标方法

            可以考虑做权限,日志,事务

      postHandler:调用目标方法之后,但是在渲染视图之前

            可以对请求域中的属性或者视图做出修改。

      dftercompletion:渲染视图之后被调用

              释放资源。

    5.调用顺序

      

    二:拦截器的配置

    1.配置拦截器的作用路径

     1    <mvc:interceptors>
     2         <!-- 配置自定义拦截器 -->
     3         <bean class="com.spring.it.interceptors.FirstInterceptor"></bean>
     4         <!-- 配置拦截器的作用路径 -->
     5         <mvc:interceptor>
     6             <mvc:mapping path="/emps"/>
     7             <bean class="com.spring.it.interceptors.SecondInterceptor"></bean>
     8         </mvc:interceptor>
     9     
    10         <!-- 配置LocaleChangeInterceter拦截器 -->
    11         <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
    12     </mvc:interceptors>

    2.效果

      

    三:拦截器的执行顺序

    1.图说明

      

    2.注意点

      如果second中的preHandler中返回false。

      虚线中的都不再执行。

      

  • 相关阅读:
    Magento入门开发教程
    Magento文件系统目录结构
    正则匹配获取HTML图片地址,正则匹配获取HTML内容
    php+phpspreadsheet读取Excel数据存入mysql
    PHP遍历一个文件夹下所有文件和子文件夹的函数
    前端实现在线预览pdf、word、xls、ppt等文件
    微服务架构的基础框架选择
    Linux性能优化实战学习笔记:第五十八讲
    Linux性能优化实战学习笔记:第五十六讲
    Linux性能优化实战学习笔记:第五十五讲
  • 原文地址:https://www.cnblogs.com/juncaoit/p/8850058.html
Copyright © 2011-2022 走看看