`

Springmvc3 拦截器excludeUrlPattern

 
阅读更多

在用springmvc3时经常会碰到登录拦截这种需求,最新想到的办法是用拦截器,但在用拦截器时想让某些静态文件和某些url不需要拦截,实现如下:

spring-servlet.xml:

<mvc:resources mapping="/resources/**" location="/resources/" cache-period="31556926"/>


    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>

            <bean class="com.xxx.interceptor.UserLoginCheckInterceptor">
                <property name="excludeUrlPatterns">
                    <list>
                        <value>/login/*</value>
                        <value>/resources/**</value>
                    </list>
                </property>
            </bean>
        </mvc:interceptor>

    </mvc:interceptors>

 UserLoginCheckInterceptor.java

 

public class UserLoginCheckInterceptor extends HandlerInterceptorAdapter {

    private List<String> excludeUrlPatterns;

    private PathMatcher pathMatcher = new AntPathMatcher();

    public void setExcludeUrlPatterns(List<String> excludeUrlPatterns) {
        this.excludeUrlPatterns = excludeUrlPatterns;
    }

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String servletPath = request.getServletPath();
        for(String urlPattern : excludeUrlPatterns){
            if(pathMatcher.match(urlPattern,servletPath)){
                return true;
            }
        }
        HttpSession session = request.getSession();
        if(!Constants.CORRECT.equals(session.getAttribute(Constants.USER_NAME))){
            response.sendRedirect(request.getContextPath() +"/login.jsp");
            return false;
        }


        return true;
    }
}

 说明:

在配置文件中可以写不被拦截url pattern,写法和requestMapping一样,此处用到了AntPathMatcher类,springmvc中url映射本身也是用的此类,这里只是借用一下,即可完成urlpattern.

 

分享到:
评论

相关推荐

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

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

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

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

    SpringMVC时间拦截器

    SpringMVC框架下对限定时间拦截(适用于初学者)

    SpringMVC配置拦截器实现登录控制的方法

    1. 拦截器(Interceptor):SpringMVC中拦截器用于对请求进行拦截处理,比如在用户未登录时,拦截请求并进行重定向至登录页面。拦截器需要实现HandlerInterceptor接口,并重写preHandle、postHandle和...

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

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,它允许我们在请求处理前后执行自定义逻辑,如权限检查、日志记录、性能监控等。本文将深入探讨如何使用注解来自定义Spring MVC的拦截器。 首先,...

    springMVC拦截器项目

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

    SpringMVC拦截器例子详解

    3. **自定义拦截器**: - 自定义拦截器需要继承`HandlerInterceptor` 或 `HandlerInterceptorAdapter` 类,并重写相关方法。 - `preHandle(HttpServletRequest request, HttpServletResponse response, Object ...

    SpringMVC - 拦截器

    下面将详细介绍 SpringMVC 拦截器的工作原理、创建与配置方法,以及如何应用到实际项目中。 1. **工作原理** - 在 SpringMVC 中,拦截器是基于 HandlerMapping 和 HandlerAdapter 的概念实现的。当一个请求到达时...

    SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi

    SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi

    SpringMVC-12 拦截器

    在本教程“SpringMVC-12 拦截器”中,我们将深入探讨如何实现和配置自定义拦截器,以及多个拦截器的执行顺序。 首先,我们来了解如何创建一个自定义的拦截器。在Spring MVC中,我们需要创建一个实现了`...

    SpringMVC拦截器

    ### SpringMVC拦截器 #### 一、拦截器概述 拦截器(Interceptor)是一种轻量级、低侵入式的AOP实现方式,在SpringMVC框架中有着广泛的应用。它主要用于处理那些与业务逻辑无关但又频繁出现的功能需求,如日志记录...

    SpringMVC拦截器源代码.zip

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

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

    **SpringMVC 拦截器实现登录退出功能** 在SpringMVC框架中,拦截器(Interceptor)是一种非常重要的机制,它允许我们在请求被控制器处理之前或之后执行自定义逻辑。在本例中,我们将讨论如何使用拦截器来实现用户...

    springmvc拦截器实现登录验证

    3. **注册拦截器**:将自定义的拦截器添加到Spring MVC的拦截器链中。这通常在Spring配置类中完成,使用`@Configuration`和`@EnableWebMvc`注解,并且通过`addInterceptors()`方法将拦截器添加到`...

    SpringMVC自定义拦截器实现过程详解

    SpringMVC自定义拦截器实现过程详解 SpringMVC自定义拦截器是指在SpringMVC框架中,开发者可以自定义一些拦截器来实现特定的功能。拦截器是AOP思想的具体应用,用于对处理器进行预处理和后处理。在SpringMVC框架中...

    SSM笔记-SpringMVC的自定义拦截器

    在SpringMVC框架中,拦截器(Interceptor)是一种强大的机制,它可以用来在请求处理之前、之后或处理过程中执行额外的逻辑。自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计...

    SpringMVC拦截器源码.rar

    在SpringMVC中,拦截器(Interceptor)是一个重要的概念,用于在实际处理请求之前和之后执行一些预处理或后处理逻辑。这些逻辑可以包括权限检查、日志记录、性能统计等。 ### 一、SpringMVC 拦截器的定义 ...

    SpringMVC+Mybatis+Mysql+权限+拦截器的整合实例 源码程序

    在本项目中,我们主要探讨的是一个基于SpringMVC、Mybatis、Mysql数据库的完整应用实例,同时涉及到了权限管理和拦截器的实现。这个实例提供了详细的源代码,包括SQL脚本,以及一些实用的工具类,使得开发者可以快速...

    基于springMVC的session拦截器

    3. **创建Session拦截器** 首先,我们需要创建一个实现了`HandlerInterceptor`接口的类。这个接口定义了三个方法:`preHandle()`, `postHandle()`, 和 `afterCompletion()`。 - `preHandle(HttpServletRequest ...

    SpringMVC 中的拦截器与异常处理

    在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...

Global site tag (gtag.js) - Google Analytics