`
samwalt
  • 浏览: 285559 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring MVC自定义拦截器

    博客分类:
  • java
 
阅读更多
自定义拦截器要实现org.springframework.web.servlet.handler.HandlerInterceptorAdapter类。

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

public class TimeBasedAccessInterceptor extends HandlerInterceptorAdapter {   
    private int openingTime;   
    private int closingTime;   
    private String mappingURL;//利用正则映射到需要拦截的路径   
    public void setOpeningTime(int openingTime) {   
        this.openingTime = openingTime;   
    }   
    public void setClosingTime(int closingTime) {   
        this.closingTime = closingTime;   
    }   
    public void setMappingURL(String mappingURL) {   
        this.mappingURL = mappingURL;   
    }   
    @Override  
    public boolean preHandle(HttpServletRequest request,   
            HttpServletResponse response, Object handler) throws Exception {   
        String url=request.getRequestURL().toString();   
        if(mappingURL==null || url.matches(mappingURL)){   
            Calendar c=Calendar.getInstance();   
            c.setTime(new Date());   
            int now=c.get(Calendar.HOUR_OF_DAY);   
            if(now<openingTime || now>closingTime){   
                request.setAttribute("msg", "注册开放时间:9:00-12:00");   
                request.getRequestDispatcher("/msg.jsp").forward(request, response);   
                return false;   
            }   
            return true;   
        }   
        return true;   
    }   
} 



<bean id="timeBasedAccessInterceptor" class="com.spring.handler.TimeBasedAccessInterceptor">  
    <property name="openingTime" value="9" />  
    <property name="closingTime" value="12" />  
    <property name="mappingURL" value=".*/user\.do\?action=reg.*" />  
</bean>  
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">  
    <property name="interceptors">  
        <list>  
            <ref bean="timeBasedAccessInterceptor"/>  
        </list>  
    </property>  
</bean> 



简单的配置拦截器的方法:
<mvc:interceptors>
		<bean class="com.spring.handler.TimeBasedAccessInterceptor" />
	</mvc:interceptors>
分享到:
评论

相关推荐

    Spring MVC--13.自定义拦截器

    Spring MVC--自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器

    spring MVC(新增拦截器demo)

    2. **创建自定义拦截器**:首先,我们需要创建一个实现了`HandlerInterceptor`接口的类。这个接口中有三个方法: - `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`:在...

    spring mvc 中 实现自定义注解 拦截需要的方法

    网上很多人想使用注解拦截spring mvc action中的一个方法,实现方法很多,一般是通过在拦截器中分析url路径来实现, 使用自定义注解的方式来标注要拦截的 action 中的某个方法, 没有很好的解决方法, 如果通过借助spring...

    springmvc(自定义拦截器的使用)

    自定义拦截器是扩展Spring MVC功能、添加自定义行为的一种常见方式。以下是对自定义拦截器实现步骤的详细解释: ### 1. 自定义拦截器类 #### 1.1 继承 `HandlerInterceptorAdapter` 你可以选择继承`...

    java之spring mvc之拦截器.docx

    2. **自定义拦截器的实现步骤** - 步骤a:创建一个新的Java类,实现`HandlerInterceptor`接口。例如,我们可以创建一个名为`MyInterceptor`的类,并重写上述三个方法,实现我们所需的逻辑。 - 步骤b:在Spring MVC...

    SpringMvc自定义拦截器(注解)代码实例

    首先,自定义拦截器需要实现Spring MVC提供的`HandlerInterceptor`接口。这个接口定义了三个关键方法: 1. `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`: 这是在请求被...

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

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

    Spring MVC 拦截器入门例子

    Spring MVC 拦截器是基于Java的Web开发框架Spring MVC中的一个重要组件,它允许开发者在请求被控制器处理之前或之后执行自定义逻辑。拦截器主要用于实现通用功能,如权限验证、日志记录、性能监控等,从而提高代码的...

    Spring MVC 拦截器

    自定义拦截器通常需要继承`HandlerInterceptorAdapter`并覆盖其方法。例如,`ControllerInterceptor`类实现了基本的拦截逻辑: ```java public class ControllerInterceptor extends HandlerInterceptorAdapter { ...

    Spring MVC--9.自定义拦截器、异常处理

    Spring MVC--9.自定义拦截器、异常处理

    spring mvc 和spring security自定义登录

    综上所述,结合Spring MVC和Spring Security实现自定义登录,需要理解两者的基本原理,配置合适的过滤器、认证提供者和授权规则。通过这种方式,我们可以创建一个既安全又易于维护的Web应用程序,为用户提供安全的...

    spring boot 登录拦截器

    Spring Boot结合了Spring MVC框架,提供了方便的方式来实现这样的拦截器。本篇文章将深入探讨如何使用Spring Boot、JPA连接数据库以及设置登录拦截器来拦截指定路径。 首先,我们需要理解Spring Boot中的JPA(Java ...

    SpringBoot中自定义拦截器示例代码

    本篇将详细讲解如何在Spring Boot中创建并使用自定义拦截器,并提供相关的示例代码。 首先,我们需要了解Spring MVC中的拦截器(HandlerInterceptor)接口。该接口定义了三个方法: 1. `preHandle...

    spring mvc xml配置拦截器

    1. **创建自定义拦截器** 首先,我们需要创建一个实现`HandlerInterceptor`接口的类。这个接口包含三个方法: - `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`: 在控制...

    SpringBoot 自定义拦截器 的 源代码

    SpringBoot 自定义拦截器 的 源代码 SpringBoot 自定义拦截器 一、自定义拦截器 二、编写控制器 三、添加拦截器对象,注入到容器的配置类中 另一种写法 四、最后application运行 我们对拦截器并不陌生,无论是 ...

    spring-boot 自定义xml配置web请求拦截器

    这涉及到Spring Boot的Web层架构、AOP(面向切面编程)以及自定义拦截器的概念。Spring Boot简化了传统Spring应用的配置,但仍然允许用户通过XML配置来扩展功能,特别是在某些特定场景下,如集成第三方库或定制化...

    Spring MVC中自定义拦截器的实例讲解

    Spring MVC中自定义拦截器的实例讲解 Spring MVC中自定义拦截器是指在Spring MVC框架中实现自定义的拦截器,以实现对每一个请求的处理前后进行相关的业务处理。下面是自定义拦截器的实现步骤和配置方法。 一、引言...

    Spring MVC 教程快速入门 深入分析

    十、Spring MVC如何使用拦截器:介绍了如何自定义拦截器以及在Spring MVC配置中注册和使用拦截器。 十一、Spring MVC如何实现全局的异常处理:提供了实现全局异常处理器的方式,让开发者能够捕获所有控制器抛出的...

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

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现权限检查、日志记录、性能统计等多种功能。本压缩包“spring mvc 拦截器获取请求...

Global site tag (gtag.js) - Google Analytics