还是直接上代码了;
不过还是有一个疑问没有搞清楚,例如下配置
<mvc:interceptors >
<mvc:interceptor>
<!-- 拦截/showUser/后的所有请求,包括静态资源文件 -->
<mvc:mapping path="/showUser/**" />
<bean class="com.test.inteceptor.HelloWorldInteceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
将会拦截/showUser/后的所有请求,包括静态资源文件,资源文件包括(CSS、Js、Image),在实际的环境中这些静态资源不需要被拦截,目前还在研究怎么能使得Inteceptor不拦截这些静态资源文件。
运行环境参照:http://xiaotao-2010.iteye.com/blog/1638827
1、SpringMVC的配置文件
spring-mvc-config.xml
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
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">
<!--
the application context definition for the springappDispatcherServlet
-->
<!-- 默认的注解映射的支持 -->
<context:annotation-config />
<!-- 启动时注解扫描器扫描包中的注解,目标包 base-package="*,*" 多个包以逗号分割-->
<context:component-scan base-package="com.test.controller" />
<!--启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<!-- 然后通过order属性 来指定顺序 handler 的加载器-->
<property name="order" value="1"/>
</bean >
<!-- 在使用Spring MVC 映射配置文件时候使用 -->
<!-- HandlerMapping
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
-->
<!-- HandlerAdapter
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
-->
<!-- 视图解释类 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 对静态资源文件的访问 方案一 -->
<mvc:default-servlet-handler/>
<!-- 对静态资源文件的访问 方案二 (二选一)
<mvc:resources mapping="/img/**" location="/img/" cache-period="31556926"/>
-->
<!-- -->
<mvc:interceptors >
<mvc:interceptor>
<!-- 拦截/showUser/后的所有请求,包括静态资源文件 -->
<mvc:mapping path="/showUser/**" />
<bean class="com.test.inteceptor.HelloWorldInteceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- 处理器 (非注解时使用)
<bean name="/hello" class="com.test.controller.HelloWorldController"/>
-->
</beans>
2、自定义的Inteceptor
package com.test.inteceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class HelloWorldInteceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object o, Exception e)
throws Exception {
System.out.println("拦截器结束。。。。");
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object o, ModelAndView mv) throws Exception {
System.out.println("拦截器工作。。。。");
String s = "------- Inteceptor --------: HelloWord !";
System.out.println(s);
mv.addObject("intep",s);
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object o) throws Exception {
// TODO Auto-generated method stub
System.out.println("拦截器开启。。。。");
return true;
}
}
3、访问
访问 URL :http://localhost:8080/test-webapp/jsp/**后的所有资源,将会被拦截
Console输出:
写道
拦截器开启。。。。
拦截器工作。。。。
------- Inteceptor --------: HelloWord !
拦截器结束。。。。
分享到:
相关推荐
这个名为"SpringMVC Demo_java_springmvc_DEMO_"的项目是一个演示示例,旨在展示如何在Java项目中集成和使用SpringMVC。通过这个项目,我们可以学习到以下关键知识点: 1. **环境配置**:首先,我们需要一个Java...
### Java实训教程知识点详解——SpringMVC拦截器 #### 一、SpringMVC概述与应用场景 SpringMVC作为Spring框架中的一个模块,主要用于构建Web应用。它是一个基于MVC(Model-View-Controller)设计模式的轻量级框架...
在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...
【课程大纲】 SpringMVC_1_开发环境搭建 共41页.pptx SpringMVC_2_HelloWorld 共19页.pptx SpringMVC_3_方法入参 共41页.pptx SpringMVC_4_方法返回值 共25页.pptx ...SpringMVC_10_拦截器 共7页.pptx
在 "springmvc4_springmvc_mainlyyb8_" 这个项目中,我们可以预见到它将涉及到 Spring MVC 4.x 版本的相关知识。 1. **Spring MVC 概述** Spring MVC 提供了一个灵活的架构,可以处理 HTTP 请求、路由请求到相应的...
SpringMVC 的拦截器(Interceptor)允许在请求处理前后执行自定义逻辑,例如登录检查、日志记录、性能监控等。拦截器通过 HandlerInterceptor 接口实现。 九、数据绑定与验证 SpringMVC 提供了自动的数据绑定功能,...
SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi
标题 "SSM.zip_mybatis_spring_springMVC mybatis_springmvc_ssm" 提供了一个关于集成框架的线索,即Spring、SpringMVC和MyBatis的整合应用,通常称为SSM框架。这个框架是Java开发Web应用程序的常用组合,特别是对于...
一个ssm项目 整合MyBatis+spring+springmvc的小例子,使用Mysql数据库,手写分页,没有用插件,还有增删查功能,文件放了sql文件,可以导入数据库,看效果,适合新手学习的例子.
5. **拦截器(Interceptor)**:可以定义一系列预处理和后处理操作,增强系统的功能和安全性。 MyBatis是一个轻量级的持久层框架,它简化了数据库操作,提供了SQL与Java代码的直接映射。MyBatis的核心功能包括: 1...
在本教程“SpringMVC-12 拦截器”中,我们将深入探讨如何实现和配置自定义拦截器,以及多个拦截器的执行顺序。 首先,我们来了解如何创建一个自定义的拦截器。在Spring MVC中,我们需要创建一个实现了`...
2. **spring-servlet.xml**: 定义 Spring MVC 的配置,如视图解析器、拦截器、数据源、事务管理器等。 3. **Maven build**: 使用 Maven 编译项目,打包成 WAR 文件后,可以部署到支持 Servlet 的应用服务器(如 ...
SpringMVC_10_拦截器 SpringMVC_2_HelloWorld SpringMVC_3_方法入参 SpringMVC_4_方法返回值 SpringMVC_5_常用注解 SpringMVC_6_数据校验 SpringMVC_7_国际化 SpringMVC_8_标签库 SpringMVC_9_文件上传 struts2_1_...
整合springmvc_spring_mybatis框架后整理的学习笔记以及整合方法。
拦截器的注册通常在SpringMVC的配置文件中完成,我们需要在标签内添加子标签,并配置相应的路径和拦截器类。这样,当请求匹配到指定路径时,对应的拦截器就会被触发。 在这个demo中,可能包含了一个简单的增删改查...
在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...
通过这两个目录中的文件,我们可以学习到如何配置SpringMVC 3.0的拦截器、视图解析器、控制器等组件,以及如何利用JPA进行数据库操作,实现CRUD(创建、读取、更新、删除)功能。此外,还可以看到如何将两者结合,...
在"springmvc_mybatis3.01.zip"压缩包中,包含了一个SpringMVC与MyBatis 3.01集成的实例,同时也涉及到了事务管理和安全漏洞的相关知识。 1. **SpringMVC与MyBatis集成** - **配置集成**:SpringMVC通过配置Spring...
**SpringMVC_10_拦截器**(共7页):最后,这部分讲解了SpringMVC中的拦截器机制,包括拦截器的实现方式、生命周期、如何注册拦截器等。 ### 总结 通过这份详细的教程,读者不仅能够系统地学习SpringMVC的基本原理...
在SpringMVC中,拦截器(Interceptor)是一种机制,可以对请求和响应进行预处理和后处理,类似于AOP(面向切面编程)的概念,但更专注于Web层。本文将深入探讨如何基于SpringMVC实现一个session拦截器,以检查用户...