`
yjshengshe
  • 浏览: 204544 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring MVC_HandlerInterceptorAdapter的使用

阅读更多

一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可以实现Bean预处理、后处理。 
Spring MVC的拦截器不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 
Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实现自己的拦截器。他有三个方法:

 

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)  
        throws Exception {  
        return true;  
    }  
    public void postHandle(  
            HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)  
            throws Exception {  
    }  
    public void afterCompletion(  
            HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)  
            throws Exception {  
    }  
 分别实现预处理、后处理(调用了Service并返回ModelAndView,但未进行页面渲染)、返回处理(已经渲染了页面) 

在preHandle中,可以进行编码、安全控制等处理; 
在postHandle中,有机会修改ModelAndView; 
在afterCompletion中,可以根据ex是否为null判断是否发生了异常,进行日志记录。 

如果基于xml配置使用Spring MVC, 
可以利用SimpleUrlHandlerMapping、BeanNameUrlHandlerMapping进行Url映射(相当于struts的path映射)和拦截请求(注入interceptors), 
如果基于注解使用Spring MVC,可以使用DefaultAnnotationHandlerMapping注入interceptors。 
注意无论基于xml还是基于注解,HandlerMapping bean都是需要在xml中配置的。 

分享到:
评论
2 楼 gaoke_71 2013-06-18  
 

    [*]
1 楼 q474818917 2013-05-17  
[flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200][flash=200,200]
[flash=200,200][url][img][list]
[*]
[/list][/img][/url][/flash]
[/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flash][/flash]

相关推荐

    spring mvc

    Spring MVC 使用 HandlerMapping 接口及其实现类来完成请求与处理方法的映射。常见的映射方式包括: - **路径映射**:通过 URL 路径匹配控制器方法。 - **注解映射**:使用 `@RequestMapping` 注解定义 URL 与方法的...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 ...

    Spring MVC 拦截器

    在Java开发中,Spring MVC框架提供了强大的控制器分发机制,其中HandlerInterceptorAdapter是用于拦截请求的一种方式。拦截器是Spring MVC中的一个重要概念,它允许开发者在请求被控制器处理之前、之后以及处理完成...

    spring mvc拦截器过滤json中的null值

    本教程将详细介绍如何使用Spring MVC的拦截器来实现这一功能。 首先,了解拦截器(Interceptor)在Spring MVC中的角色。拦截器是Spring MVC提供的一种AOP(面向切面编程)特性,允许我们在请求处理之前、之后或者在...

    spring mvc系列教程源码

    本教程源码涵盖了Spring MVC的核心概念和实践应用,包括控制器、拦截器以及注解的使用。 1. **控制器(Controller)**: 控制器是Spring MVC中的关键组件,负责接收HTTP请求并处理业务逻辑。通常,控制器通过`@...

    spring MVC(新增拦截器demo)

    通过学习这个“spring MVC(新增拦截器demo)”项目,你不仅能够理解Spring MVC拦截器的基本使用,还能掌握如何将拦截器应用于实际的需求场景。拦截器的灵活运用可以大大提高代码的复用性和维护性,使得Spring MVC应用...

    spring_mvc控制网站登录用户失效后跳登录页面

    ### Spring MVC 控制网站登录用户失效后跳转登录页面 #### 概述 在Web应用开发中,确保用户的会话安全至关重要。对于基于Spring MVC框架的应用程序而言,一个常见的需求是当用户会话失效(例如:用户长时间未操作...

    spring mvc+ibatis+oracle单表增删改(有包)

    1. 配置Spring MVC:设置 DispatcherServlet、视图解析器(如InternalResourceViewResolver)、拦截器(如HandlerInterceptorAdapter)等。 2. 配置iBATIS:在Spring的配置文件中声明SqlSessionFactoryBean,配置...

    spring mvc 拦截器获取请求数据信息.rar

    本压缩包“spring mvc 拦截器获取请求数据信息.rar”提供了关于如何在Spring MVC中使用拦截器来获取和处理请求数据的示例代码。 首先,我们来理解一下Spring MVC中的拦截器是如何工作的。拦截器是基于Java的动态...

    Spring MVC面试题(2022最新版)

    在Spring MVC中,可以通过实现`HandlerInterceptor`接口或继承`HandlerInterceptorAdapter`类来创建拦截器。 ```java public class MyInterceptor implements HandlerInterceptor { @Override public boolean ...

    java之spring mvc之拦截器.docx

    使用`<mvc:interceptors>`标签来定义拦截器容器,然后在其中通过`<mvc:interceptor>`标签创建拦截器实例。`<mvc:mapping>`标签用于指定需要拦截的URL模式,而`<bean>`标签用于注册我们的拦截器类。 - 步骤c:测试...

    Spring MVC 3 结合DWZ 框架编写拦截器判断session是否过期

    代码中定义了一个名为`SessionInterceptor`的类,它继承自`HandlerInterceptorAdapter`,这是Spring MVC提供的一个基础拦截器抽象类。`preHandle`方法是拦截器生命周期中的关键方法,它在实际处理请求之前被调用。在...

    Spring MVC接口防数据篡改和重复提交

    Spring MVC框架中,数据篡改和重复提交是常见的安全问题,本文将详细介绍如何使用Spring MVC防止数据篡改和重复提交。 一、自定义注解 在Spring MVC中,可以使用自定义注解来标记需要数据校验的方法或类。首先,...

    springmvcdemo:spring mvc源码分析时的一个简单demo

    通过使用Spring MVC,开发者可以将业务逻辑、数据和用户界面进行解耦,提高代码的可维护性和测试性。 **1. 请求处理流程** Spring MVC的请求处理流程主要包括以下步骤: 1. 用户发起HTTP请求到达...

    Spring Portlet MVC参考文档(中文版)

    此文档基于Spring框架2.0.8版本的第16章翻译而来,旨在详细介绍Spring Portlet MVC的概念与原理,特别是框架内的关键组件与使用技巧,以助开发者深入了解并灵活应用。 **1.2 面向读者** 该文档主要面向具备一定JSR...

    shiro+spirngmvc 验证 IntelliJ IDEA

    - 创建一个Shiro的Spring MVC拦截器,通过`HandlerInterceptorAdapter`实现,用于在请求处理之前进行Shiro的权限检查。 - 配置Spring MVC的拦截器,将Shiro的拦截器加入到拦截器链中。 6. **登录和注销** - 创建...

    Spring MVC面试宝典1.pdf

    ### Spring MVC面试宝典知识点详解 #### 一、SpringMVC简介 ##### 1.1 什么是SpringMVC? SpringMVC是一个基于Java的轻量级Web应用框架,该框架遵循MVC(Model-View-Controller)设计模式,旨在简化Web层的开发。...

    详解Spring MVC拦截器实现session控制

    例如,在Spring MVC中创建拦截器通常需要在某个包(例如com.geloin.spring.interceptor)下添加拦截器类,并使其继承HandlerInterceptorAdapter类。这个适配器类实现了HandlerInterceptor接口,并提供了空的默认实现...

    Spring mvc防止数据重复提交的方法

    Spring MVC 防止数据重复提交的方法是使用 Token 机制来实现的,该机制通过在服务器端生成一个随机的 UUID,并将其存储在 Session 中,然后在客户端提交数据时带上该 UUID,服务器端在接收到该 UUID 后,对其进行...

Global site tag (gtag.js) - Google Analytics