在用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拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...
本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...
SpringMVC框架下对限定时间拦截(适用于初学者)
1. 拦截器(Interceptor):SpringMVC中拦截器用于对请求进行拦截处理,比如在用户未登录时,拦截请求并进行重定向至登录页面。拦截器需要实现HandlerInterceptor接口,并重写preHandle、postHandle和...
在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,它允许我们在请求处理前后执行自定义逻辑,如权限检查、日志记录、性能监控等。本文将深入探讨如何使用注解来自定义Spring MVC的拦截器。 首先,...
SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...
3. **自定义拦截器**: - 自定义拦截器需要继承`HandlerInterceptor` 或 `HandlerInterceptorAdapter` 类,并重写相关方法。 - `preHandle(HttpServletRequest request, HttpServletResponse response, Object ...
下面将详细介绍 SpringMVC 拦截器的工作原理、创建与配置方法,以及如何应用到实际项目中。 1. **工作原理** - 在 SpringMVC 中,拦截器是基于 HandlerMapping 和 HandlerAdapter 的概念实现的。当一个请求到达时...
SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi
在本教程“SpringMVC-12 拦截器”中,我们将深入探讨如何实现和配置自定义拦截器,以及多个拦截器的执行顺序。 首先,我们来了解如何创建一个自定义的拦截器。在Spring MVC中,我们需要创建一个实现了`...
### SpringMVC拦截器 #### 一、拦截器概述 拦截器(Interceptor)是一种轻量级、低侵入式的AOP实现方式,在SpringMVC框架中有着广泛的应用。它主要用于处理那些与业务逻辑无关但又频繁出现的功能需求,如日志记录...
这个名为“SpringMVC拦截器源代码.zip”的压缩包可能包含了Spring MVC拦截器的实现源码,这对于理解和学习如何自定义拦截器以增强应用功能非常有帮助。 1. **拦截器的基本概念** - 拦截器是AOP(面向切面编程)的...
**SpringMVC 拦截器实现登录退出功能** 在SpringMVC框架中,拦截器(Interceptor)是一种非常重要的机制,它允许我们在请求被控制器处理之前或之后执行自定义逻辑。在本例中,我们将讨论如何使用拦截器来实现用户...
3. **注册拦截器**:将自定义的拦截器添加到Spring MVC的拦截器链中。这通常在Spring配置类中完成,使用`@Configuration`和`@EnableWebMvc`注解,并且通过`addInterceptors()`方法将拦截器添加到`...
SpringMVC自定义拦截器实现过程详解 SpringMVC自定义拦截器是指在SpringMVC框架中,开发者可以自定义一些拦截器来实现特定的功能。拦截器是AOP思想的具体应用,用于对处理器进行预处理和后处理。在SpringMVC框架中...
在SpringMVC框架中,拦截器(Interceptor)是一种强大的机制,它可以用来在请求处理之前、之后或处理过程中执行额外的逻辑。自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计...
在SpringMVC中,拦截器(Interceptor)是一个重要的概念,用于在实际处理请求之前和之后执行一些预处理或后处理逻辑。这些逻辑可以包括权限检查、日志记录、性能统计等。 ### 一、SpringMVC 拦截器的定义 ...
在本项目中,我们主要探讨的是一个基于SpringMVC、Mybatis、Mysql数据库的完整应用实例,同时涉及到了权限管理和拦截器的实现。这个实例提供了详细的源代码,包括SQL脚本,以及一些实用的工具类,使得开发者可以快速...
3. **创建Session拦截器** 首先,我们需要创建一个实现了`HandlerInterceptor`接口的类。这个接口定义了三个方法:`preHandle()`, `postHandle()`, 和 `afterCompletion()`。 - `preHandle(HttpServletRequest ...
在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...