一、拦截器的配置

1、传统的配置

Xml代码  
  1. <bean
  2. class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
  3. <property name="interceptors">
  4. <!-- 多个拦截器,顺序执行 -->
  5. <list>
  6. <ref bean="commonInterceptor"/>
  7. </list>
  8. </property>
  9. </bean>
  10. <!--
  11. 如果不定义mappingURL,则默认拦截所有对Controller的请求 ;
  12. 可以使用正则表达式对url进行匹配,从而更细粒度的进行拦截(.*/entryOrJsonController\.do\?action=reg.*);
  13. -->
  14. <bean id="commonInterceptor" class="com.wy.interceptor.CommonInterceptor">
  15. <property name="mappingURL" value=".*/entryOrJsonController\.do\?action=reg.*"/>
  16. </bean>

2、基于注解的配置

Xml代码  
  1. <!-- 拦截器 -->
  2. <mvc:interceptors>
  3. <!-- 多个拦截器,顺序执行 -->
  4. <mvc:interceptor>
  5. <mvc:mapping path="/entryOrJsonController
  6. @Override
  7. public boolean preHandle(HttpServletRequest request,
  8. HttpServletResponse response, Object handler) throws Exception {
  9. // TODO Auto-generated method stub
  10. log.info("==============执行顺序: 1、preHandle================");
  11. String url=request.getRequestURL().toString();
  12. if(mappingURL==null || url.matches(mappingURL)){
  13. request.getRequestDispatcher("/msg.jsp").forward(request, response);
  14. return false;
  15. }
  16. return true;
  17. }
  18. //在业务处理器处理请求执行完成后,生成视图之前执行的动作
  19. @Override
  20. public void postHandle(HttpServletRequest request,
  21. HttpServletResponse response, Object handler,
  22. ModelAndView modelAndView) throws Exception {
  23. // TODO Auto-generated method stub
  24. log.info("==============执行顺序: 2、postHandle================");
  25. }
  26. @Override
  27. public void afterCompletion(HttpServletRequest request,
  28. HttpServletResponse response, Object handler, Exception ex)
  29. throws Exception {
  30. // TODO Auto-generated method stub
  31. log.info("==============执行顺序: 3、afterCompletion================");
  32. }
  33. }

注意:注释中的说明。

完整的spring配置文件

Java代码  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:util="http://www.springframework.org/schema/util"
  7. xsi:schemaLocation="
  8. http://www.springframework.org/schema/beans
  9. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  12. http://www.springframework.org/schema/mvc
  13. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
  14. http://www.springframework.org/schema/util
  15. http://www.springframework.org/schema/util/spring-util-3.0.xsd">
  16. <!-- 默认的注解映射的支持 ,它会自动注册DefaultAnnotationHandlerMapping 与AnnotationMethodHandlerAdapter
  17. <mvc:annotation-driven />
  18. -->
  19. <!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd -->
  20. <mvc:resources mapping="/jsentryOrJsonController\.do\?action=reg.*);
  21. -->
  22. <bean id="commonInterceptor" class="com.wy.interceptor.CommonInterceptor">
  23. <property name="mappingURL" value=".*/entryOrJsonController\.do\?action=reg.*"/>
  24. </bean>
  25. <!-- 处理方法级别上的@RequestMapping注解-->
  26. <bean
  27. class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
  28. <property name="messageConverters">
  29. <util:list id="beanList">
  30. <ref bean="mappingJacksonHttpMessageConverter"/>
  31. </util:list>
  32. </property>
  33. </bean>
  34. <!--
  35. 将指定路径的请求直接转到对应的view上,而不需要特定的controller来处理请求 .
  36. 注意:此处的映射路径是/hello,请求时http://localhost:8080/SpringMVC/hello
  37. 不能在hello.xxx,而不使用此种方式的映射可以加的,因为web.xml配置的是‘/’
  38. -->
  39. <mvc:view-controller path="/hello" view-name="hello" />
  40. <!-- 视图解析器策略 和 视图解析器 -->
  41. <!-- 对JSTL提供良好的支持 -->
  42. <bean
  43. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  44. <!-- 默认的viewClass,可以不用配置
  45. <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />
  46. -->
  47. <property name="prefix" value="/WEB-INF/page/" />
  48. <property name="suffix" value=".jsp" />
  49. </bean>
  50. <!-- 处理JSON数据转换的 -->
  51. <bean id="mappingJacksonHttpMessageConverter"
  52. class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
  53. <!-- 为了处理返回的JSON数据的编码,默认是ISO--的,这里把它设置为UTF-,解决有乱码的情况 -->
  54. <property name="supportedMediaTypes">
  55. <list>
  56. <value>text/html;charset=UTF-</value>
  57. </list>
  58. </property>
  59. </bean>
  60. <!-- 拦截器 -->
  61. <mvc:interceptors>
  62. <!-- 多个拦截器,顺序执行 -->
  63. <mvc:interceptor>
  64. <mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,将拦截所有的Controller -->
  65. <bean class="com.wy.interceptor.CommonInterceptor"></bean>
  66. </mvc:interceptor>
  67. </mvc:interceptors>
  68. <!--
  69. ResourceBundleViewResolver通过basename所指定的ResourceBundle解析视图名。
  70. 对每个待解析的视图,ResourceBundle里的[视图名].class所对应的值就是实现该视图的类。
  71. 同样,[视图名].url所对应的值是该视图所对应的URL。
  72. 可以指定一个parent view,其它的视图都可以从parent view扩展。
  73. 用这种方法,可以声明一个默认的视图。
  74. <bean id="messageSource"
  75. class="org.springframework.context.support.ResourceBundleMessageSource">
  76. <property name="basename" value="welcome" />
  77. </bean>
  78. -->
  79. </beans>

SpringMVC拦截器简单使用的更多相关文章

  1. springMVC 拦截器简单配置

    在spring 3.0甚础上,起来越多的用到了注解,从前的拦截器在配置文件中需要这样配置 <beans...> ... <bean id="measurementInter ...

  2. springMVC拦截器简单配置

    <!-- 拦截器 -->    <mvc:interceptors>        <mvc:interceptor>            <!-- 拦截所 ...

  3. [转]SpringMVC拦截器简单教程

    亲测有用,地址: http://blog.csdn.net/tjcyjd/article/details/7498236

  4. springmvc拦截器的简单了解

    1.定义一个拦截器 2.在springmvc.xml中配置拦截器. (1)拦截器拦截的请求是建立在前端控制器配置之下的,若DispatcherServlet拦截的是*.action,则拦截器即使配置 ...

  5. SpringMVC拦截器的使用

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  6. SpringMVC拦截器(实现登录验证拦截器)

    本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 <%@ ...

  7. SpringMVC拦截器Interceptor

    SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter. SpringMVC 中的Interceptor 拦截请求是通过Ha ...

  8. 五 : springMVC拦截器

    springMVC拦截器的实现一般有两种方式 第一种方式是要定义的Interceptor类要实现了Spring的HandlerInterceptor 接口 第二种方式是继承实现了HandlerInte ...

  9. SpringMVC 拦截器实现原理和登录实现

    SpringMVC 拦截器的原理图 springMVC拦截器的实现一般有两种方式 第一种方式是要定义的Interceptor类要实现了Spring的HandlerInterceptor 接口 第二种方 ...

随机推荐

  1. Clipboard.GetImage() Clipboard获取粘贴板内容为null的解决办法

    将线程启动模式设置为 sta 单线程 简介 STA:   Single-Thread   Apartment,   中文叫单线程套间.就是在COM库初始化的时候创建一个内存结构,然后让它和调用CoIn ...

  2. vue学习01

    vue学习01   1. 创建一个Vue实例官网-学习-教程-安装-(开发/生产版本)-与jQuery的引用相似 <!DOCTYPE html> <html> <head ...

  3. 查看python selenium 的api

    DOS窗口输入: python -m pydoc -p 4567 python -m pydoc : 打开pydoc模块,pydoc是查看python文档的首选工具 -p 4567: 在4567端口启 ...

  4. pylot 学习笔记-使用

    Console and Blocking Mode - Command Line Options: usage: run.py [options] args -a, --agents=NUM_AGEN ...

  5. Android中如何实现文件下载

        最近做一个项目需要从服务器下载图片到本地sdcard,上网查找了一些例子,下面这个比较合适,原文内容如下:   我们在开发中经常需要从服务器下载文件,下载的内容可能有交换的信息,缓存的图片,程 ...

  6. 机器学习(6): 层次聚类 hierarchical clustering

    假设有N个待聚类的样本,对于层次聚类来说,步骤:        1.(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度:        2.寻找各个类之间最近的两个类, ...

  7. Android开发5——文件读写

    一.基本概念 在Android应用中保存文件,保存的位置有两处 ①手机自带的存储空间,较小(如200M),适合保存一些小文件,Android中保存位置在data/data/应用包名/files目录 ② ...

  8. Ubuntu和centos下查看包的安装路径

    安装包后,如何查看安装的具体路径? Ubuntu下: dpkg -L  <包名> CentOS下: rpm -ql   <包名> 助记: l为list的首字母. q为query ...

  9. FPGA三分频,五分频,奇数分频

    我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部 ...

  10. [sql]大型网站MySQL深度优化揭秘

    大型网站MySQL深度优化揭秘 第1章优化的思路和线路 1.1 网站优化的思路    2 1.2 MySQL优化,nginx这样的东西怎么优化? 第2章硬件层面优化 2.1 数据库物理机 2.1.1 ...