`
eric_hwp
  • 浏览: 125286 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SpringMVC拦截器

 
阅读更多

HandlerInterceptorAdapter.java

1 public abstract class HandlerInterceptorAdapter implements HandlerInterceptor {
 2 
 3     /**
 4      * This implementation always returns <code>true</code>.
 5      */
 6     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
 7         throws Exception {
 8         return true;
 9     }
10 
11     /**
12      * This implementation is empty.
13      */
14     public void postHandle(
15             HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
16             throws Exception {
17     }
18 
19     /**
20      * This implementation is empty.
21      */
22     public void afterCompletion(
23             HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
24             throws Exception {
25     }
26 
27 }

Spring拦截器通过重写这三个方法实现Controller的拦截。

配置拦截器
xml
1 <bean id="handlerMapping"
 2           class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 3         <property name="interceptors">
 4             <list>
 5                 <ref bean="controllerInterceptor" />
 6             </list>
 7         </property>
 8         <property name="mappings">
 9             <props>
10                 <prop key="/hao/hello.do">helloWorldController</prop>
11             </props>
12         </property>
13     </bean>
14     
15     <bean id="controllerInterceptor" class="com.web.spring.mvc.interceptor.ControllerInterceptor"/>
16 
ControllerInterceptor.java
1 public class ControllerInterceptor extends HandlerInterceptorAdapter {
 2 
 3     /**
 4      * 在Controller方法前进行拦截
 5      */
 6     public boolean preHandle(HttpServletRequest request,
 7             HttpServletResponse response, Object handler) throws Exception {
 8         System.out.println("ControllerInterceptor.preHandle()");
 9         return true;
10     }
11 
12     /**
13      * This implementation is empty.
14      */
15     public void postHandle(HttpServletRequest request,
16             HttpServletResponse response, Object handler,
17             ModelAndView modelAndView) throws Exception {
18         System.out.println("ControllerInterceptor.postHandle()");
19     }
20 
21     /**
22      * 在Controller方法后进行拦截
23      */
24     public void afterCompletion(HttpServletRequest request,
25             HttpServletResponse response, Object handler, Exception ex)
26             throws Exception {
27         System.out.println("ControllerInterceptor.afterCompletion()");
28     }
29 }
说明:
发起请求,进入拦截器链,运行所有拦截器的preHandle方法,
1.当preHandle方法返回false时,从当前拦截器往回执行所有拦截器的afterCompletion方法,再退出拦截器链。
2.当preHandle方法全为true时,执行下一个拦截器,直到所有拦截器执行完。再运行被拦截的Controller。然后进入拦截器链,运行所有拦截器的postHandle方法,完后从最后一个拦截器往回执行所有拦截器的afterCompletion方法.
当有拦截器抛出异常时,会从当前拦截器往回执行所有拦截器的afterCompletion方法
Controller
1 
 2 @Controller
 3 @RequestMapping("/hao")
 5 public class HelloWorldController {
 6 
 7     @RequestMapping(value = "/hello")
 8     public String hello(HttpServletRequest request, HttpServletResponse response) {
 9         System.out.println("hello");
15         return "helloWorld";
16     }
17 }
分享到:
评论

相关推荐

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...

    springMVC拦截器项目

    SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...

    SpringMVC拦截器源代码.zip

    这个名为“SpringMVC拦截器源代码.zip”的压缩包可能包含了Spring MVC拦截器的实现源码,这对于理解和学习如何自定义拦截器以增强应用功能非常有帮助。 1. **拦截器的基本概念** - 拦截器是AOP(面向切面编程)的...

    springmvc 拦截器

    如果一个请求被拦截器链中的某个拦截器阻止,后面的拦截器都不会被执行。 8. **应用场景** - 权限验证:在请求到达Controller之前检查用户是否有权限访问。 - 日志记录:记录用户的请求信息,便于跟踪和调试。 -...

    SpringMvc 拦截器

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

    企业级开发-SpringMVC使用拦截器实现用户登录权限验证实验报告.docx

    本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...

    SpringMVC 拦截器 实现 登录退出功能

    综上所述,本项目是一个适合初学者了解和实践SpringMVC拦截器功能的小程序。通过学习和实践,你可以掌握如何使用拦截器实现登录验证和安全退出,同时加深对Intelli IDEA的使用理解。在实际应用中,拦截器常用于权限...

    SpringMVC拦截器源码.rar

    SpringMVC拦截器是基于AOP(面向切面编程)的概念实现的,它们遵循HandlerInterceptor接口。这个接口定义了三个方法: 1. `preHandle`: 在请求被处理器处理之前调用,返回`true`表示继续执行处理器,`false`则中断...

    SpringMVC拦截器实现登录认证

    SpringMVC拦截器是实现登录认证的一种常见方法,它允许开发者在请求被实际处理之前或之后执行特定的逻辑。本文将深入探讨如何利用SpringMVC拦截器来实现这一功能。 首先,了解SpringMVC的核心组件是必要的。...

    SpringMVC拦截器例子详解

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复代码...

    使用SessionListener+持久化Session+Springmvc拦截器实现单点登录

    在这个过程中,`SessionListener`、持久化`Session`和`Springmvc拦截器`是关键组件,让我们逐一深入探讨。 ### SessionListener `SessionListener`是Java Servlet API中的一个接口,用于监听`HttpSession`事件。...

    springMVC拦截器

    SpringMVC 拦截器是 Spring MVC 框架中的一个重要组成部分,它允许开发者在控制器处理请求之前或之后执行自定义逻辑。拦截器可以用于实现登录检查、权限验证、日志记录、性能监控等多种功能。本文将详细介绍 ...

    11SpringMVC拦截器.md

    11SpringMVC拦截器.md

    springmvc拦截器入门实例.zip

    SpringMVC 拦截器(HandlerInterceptor)是 SpringMVC 框架中的一个重要组成部分,它在请求处理之前、之后以及视图渲染之前执行,提供了预处理和后处理的功能。这个入门实例是为了帮助开发者理解如何在实际项目中...

    SpringMVC拦截器实现单点登录

    SpringMVC 拦截器实现单点登录是一种常见的安全控制机制,主要用于确保在同一时间只有一个用户能够使用同一账号进行操作。这种功能在多用户、多设备登录的环境中尤为重要,可以防止用户账号被盗用或者误操作。 单点...

    SpringMVC拦截器配置及运行流程解析

    SpringMVC拦截器配置及运行流程解析 SpringMVC拦截器是指在SpringMVC框架中,用于拦截和处理请求的组件。拦截器可以在请求处理之前、之后或抛出异常时执行某些操作,例如身份验证、日志记录、异常处理等。SpringMVC...

    springMVC拦截器HandlerInterceptor用法代码示例

    "springMVC拦截器HandlerInterceptor用法代码示例" springMVC拦截器HandlerInterceptor是一种非常重要的技术,它可以帮助我们拦截用户的请求,从而知道页面请求的是哪个class的哪个方法。本文将详细介绍springMVC...

Global site tag (gtag.js) - Google Analytics