SpringMVC拦截器简单使用
一、拦截器的配置
1、传统的配置
- <bean
- class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
- <property name="interceptors">
- <!-- 多个拦截器,顺序执行 -->
- <list>
- <ref bean="commonInterceptor"/>
- </list>
- </property>
- </bean>
- <!--
- 如果不定义mappingURL,则默认拦截所有对Controller的请求 ;
- 可以使用正则表达式对url进行匹配,从而更细粒度的进行拦截(.*/entryOrJsonController\.do\?action=reg.*);
- -->
- <bean id="commonInterceptor" class="com.wy.interceptor.CommonInterceptor">
- <property name="mappingURL" value=".*/entryOrJsonController\.do\?action=reg.*"/>
- </bean>
2、基于注解的配置
- <!-- 拦截器 -->
- <mvc:interceptors>
- <!-- 多个拦截器,顺序执行 -->
- <mvc:interceptor>
- <mvc:mapping path="/entryOrJsonController
- @Override
- public boolean preHandle(HttpServletRequest request,
- HttpServletResponse response, Object handler) throws Exception {
- // TODO Auto-generated method stub
- log.info("==============执行顺序: 1、preHandle================");
- String url=request.getRequestURL().toString();
- if(mappingURL==null || url.matches(mappingURL)){
- request.getRequestDispatcher("/msg.jsp").forward(request, response);
- return false;
- }
- return true;
- }
- //在业务处理器处理请求执行完成后,生成视图之前执行的动作
- @Override
- public void postHandle(HttpServletRequest request,
- HttpServletResponse response, Object handler,
- ModelAndView modelAndView) throws Exception {
- // TODO Auto-generated method stub
- log.info("==============执行顺序: 2、postHandle================");
- }
- @Override
- public void afterCompletion(HttpServletRequest request,
- HttpServletResponse response, Object handler, Exception ex)
- throws Exception {
- // TODO Auto-generated method stub
- log.info("==============执行顺序: 3、afterCompletion================");
- }
- }
注意:注释中的说明。
完整的spring配置文件
- <?xml version="1.0" encoding="UTF-8" ?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:util="http://www.springframework.org/schema/util"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
- http://www.springframework.org/schema/util
- http://www.springframework.org/schema/util/spring-util-3.0.xsd">
- <!-- 默认的注解映射的支持 ,它会自动注册DefaultAnnotationHandlerMapping 与AnnotationMethodHandlerAdapter
- <mvc:annotation-driven />
- -->
- <!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd -->
- <mvc:resources mapping="/jsentryOrJsonController\.do\?action=reg.*);
- -->
- <bean id="commonInterceptor" class="com.wy.interceptor.CommonInterceptor">
- <property name="mappingURL" value=".*/entryOrJsonController\.do\?action=reg.*"/>
- </bean>
- <!-- 处理方法级别上的@RequestMapping注解-->
- <bean
- class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
- <property name="messageConverters">
- <util:list id="beanList">
- <ref bean="mappingJacksonHttpMessageConverter"/>
- </util:list>
- </property>
- </bean>
- <!--
- 将指定路径的请求直接转到对应的view上,而不需要特定的controller来处理请求 .
- 注意:此处的映射路径是/hello,请求时http://localhost:8080/SpringMVC/hello
- 不能在hello.xxx,而不使用此种方式的映射可以加的,因为web.xml配置的是‘/’
- -->
- <mvc:view-controller path="/hello" view-name="hello" />
- <!-- 视图解析器策略 和 视图解析器 -->
- <!-- 对JSTL提供良好的支持 -->
- <bean
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <!-- 默认的viewClass,可以不用配置
- <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />
- -->
- <property name="prefix" value="/WEB-INF/page/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 处理JSON数据转换的 -->
- <bean id="mappingJacksonHttpMessageConverter"
- class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
- <!-- 为了处理返回的JSON数据的编码,默认是ISO--的,这里把它设置为UTF-,解决有乱码的情况 -->
- <property name="supportedMediaTypes">
- <list>
- <value>text/html;charset=UTF-</value>
- </list>
- </property>
- </bean>
- <!-- 拦截器 -->
- <mvc:interceptors>
- <!-- 多个拦截器,顺序执行 -->
- <mvc:interceptor>
- <mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,将拦截所有的Controller -->
- <bean class="com.wy.interceptor.CommonInterceptor"></bean>
- </mvc:interceptor>
- </mvc:interceptors>
- <!--
- ResourceBundleViewResolver通过basename所指定的ResourceBundle解析视图名。
- 对每个待解析的视图,ResourceBundle里的[视图名].class所对应的值就是实现该视图的类。
- 同样,[视图名].url所对应的值是该视图所对应的URL。
- 可以指定一个parent view,其它的视图都可以从parent view扩展。
- 用这种方法,可以声明一个默认的视图。
- <bean id="messageSource"
- class="org.springframework.context.support.ResourceBundleMessageSource">
- <property name="basename" value="welcome" />
- </bean>
- -->
- </beans>
SpringMVC拦截器简单使用的更多相关文章
- springMVC 拦截器简单配置
在spring 3.0甚础上,起来越多的用到了注解,从前的拦截器在配置文件中需要这样配置 <beans...> ... <bean id="measurementInter ...
- springMVC拦截器简单配置
<!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 拦截所 ...
- [转]SpringMVC拦截器简单教程
亲测有用,地址: http://blog.csdn.net/tjcyjd/article/details/7498236
- springmvc拦截器的简单了解
1.定义一个拦截器 2.在springmvc.xml中配置拦截器. (1)拦截器拦截的请求是建立在前端控制器配置之下的,若DispatcherServlet拦截的是*.action,则拦截器即使配置 ...
- SpringMVC拦截器的使用
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- SpringMVC拦截器(实现登录验证拦截器)
本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 <%@ ...
- SpringMVC拦截器Interceptor
SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter. SpringMVC 中的Interceptor 拦截请求是通过Ha ...
- 五 : springMVC拦截器
springMVC拦截器的实现一般有两种方式 第一种方式是要定义的Interceptor类要实现了Spring的HandlerInterceptor 接口 第二种方式是继承实现了HandlerInte ...
- SpringMVC 拦截器实现原理和登录实现
SpringMVC 拦截器的原理图 springMVC拦截器的实现一般有两种方式 第一种方式是要定义的Interceptor类要实现了Spring的HandlerInterceptor 接口 第二种方 ...
随机推荐
- 安装Python 3.6
原文地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143160904 ...
- JMeter学习笔记---性能分析
图像结果: 通过观察平均采样响应时长,用户可以直观地看到,随着并发压力的加大,以及性能测试时间的延长,系统性能所发生的变化.正常情况下,平均采样响应时长曲线应该是平滑的,并大致平行于图像下边界. 异常 ...
- 【转】对 Go 语言的综合评价
以前写过一些对 Go 语言的负面评价.现在看来,虽然那些评价大部分属实,然而却由于言辞激烈,没有点明具体问题,难以让某些人信服.在经过几个月实际使用 Go 来构造网站之后,我觉得现在是时候对它作一些更 ...
- oracle各种常用管理sql及其他 ---待续
启动客户端工具:sqlplus /nolog 使用sysdba链接:conn / as sysdba; select * from dba_users; --查看数据库里面所有用户,前提是你是有dba ...
- 在普通Java类里使用spring里注入的service、dao等
版权声明:本文为博主武伟峰原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. 在spring管理的web项目里,譬如Struts和spring的项目,配 ...
- 简单易懂的laravel事件,这个功能非常的有用(监听事件,订阅者模式)
先说一下在什么场景会使用这个事件功能. 事情大概是这样的,需求要在用户注册的时候发一些帮助邮件给用户(原本用户在注册之后已经有发别的邮件的了,短信,IM什么的) 原来这个注册的方法也就10多行代码.但 ...
- Codeforces 86C Genetic engineering (AC自己主动机+dp)
题目大意: 要求构造一个串,使得这个串是由所给的串相连接构成,连接能够有重叠的部分. 思路分析: 首先用所给的串建立自己主动机,每一个单词节点记录当前节点可以达到的最长后缀. 開始的时候想的是dp[i ...
- putty设置用key自动登录
1.在Linux下ssh-keygen -t rsa 生成密钥对 2.把私钥id_isa下载到用scp下载到windows并用puttygen加载并重新保存私钥. 3.在windows下新建快捷方式, ...
- Unity刚体穿透问题测试以及解决
测试环境很简单,一面墙,红色方块不停向前 然后,由于刚体是FixedUpdate执行的,把FixedUpdate执行间隔调慢一些方便Debug: OK,下面还原一次经典的穿透问题: 测试脚本: voi ...
- ise和modelsim联合仿真的一些准备
首先要在modelsim中编译xilinx的三个库,分别是unisims库,simprims库,和corelib库,其中unisims库全称为(library of united component ...