`

Spring mvc interceptor配置拦截器,没有登录跳到登录页

阅读更多
<?xml  version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans.xsd  
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context.xsd  
        http://www.springframework.org/schema/mvc   
        http://www.springframework.org/schema/mvc/spring-mvc.xsd"
	default-autowire="byName">
	<!-- auto register Processor -->
	<context:annotation-config />
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.anxin.msapweb.db.mybatis.mapper" />
	</bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="db2dataSource" />
	</bean>

	<mvc:interceptors>
		<mvc:interceptor>
			<!-- 需拦截的地址 -->
                        <!-- 一级目录 -->
			<mvc:mapping path="/*.do" />
			<mvc:mapping path="/*.ajax" />
			<mvc:mapping path="/*.htm" />

                        <!-- 二级目录 -->
			<mvc:mapping path="/*/*.do" />
			<mvc:mapping path="/*/*.ajax" />
			<mvc:mapping path="/*/*.htm" />
			<!-- 需排除拦截的地址 -->
			<mvc:exclude-mapping path="/login.htm"/>
			<bean class="com.anxin.msapweb.web.interceptor.SecurityInterceptor" />
		</mvc:interceptor>
	</mvc:interceptors>
</beans>


注:不支持<mvc:mapping path="*.do" />

package com.anxin.msapweb.web.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.anxin.msapweb.common.Config;

public class SecurityInterceptor implements HandlerInterceptor {

	private static final String LOGIN_URL = "/login.htm";

	@Override
	public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) throws Exception {
		HttpSession session = req.getSession(true);
		// 从session 里面获取用户名的信息
		Object obj = session.getAttribute(Config.Passport.SESSION_NAME_LOGIN_RESULT);
		// 判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆
		if (obj == null || "".equals(obj.toString())) {
			res.sendRedirect(LOGIN_URL);
		}
		return true;
	}

	@Override
	public void postHandle(HttpServletRequest req, HttpServletResponse res, Object arg2, ModelAndView arg3) throws Exception {
	}

	@Override
	public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object arg2, Exception arg3) throws Exception {
	}

}
分享到:
评论
6 楼 SummerOnline 2017-07-10  
5 楼 aitouchy 2015-12-15  
把http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd改成http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
4 楼 lt26i 2015-05-03  
是不是因为这个没有排除啊

spring-mvc.xml

   <property name="excludeUrls">
     <list>
标签没有把对应的访问地址放入value
3 楼 QMonkey 2014-05-08  
caishenluli 写道
<mvc:exclude-mapping>并没有排除掉,
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/to/**"/>
        <mvc:exclude-mapping path="/to/idx"/>
        <bean class="com.share.UserLoginInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>



应该是你先配置了/to/**,就会拦截所有/to下面的请求,就包括了/to/idx,所以下面的排出不起作用了。
2 楼 caishenluli 2013-10-05  
<mvc:exclude-mapping>并没有排除掉,
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/to/**"/>
        <mvc:exclude-mapping path="/to/idx"/>
        <bean class="com.share.UserLoginInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>
1 楼 caishenluli 2013-10-05  
楼主,<mvc:exclude-mapping> 不起作用 ,你知道是怎么回事不?

相关推荐

    spring mvc xml配置拦截器

    在Spring MVC的配置文件(通常为`servlet-context.xml`)中,我们需要声明拦截器并将其添加到`&lt;mvc:interceptors&gt;`标签下。以下是一个示例配置: ```xml &lt;beans xmlns="http://www.springframework.org/schema/...

    Spring MVC 拦截器

    Spring MVC 框架中的拦截器(Interceptor)是一种重要的组件,它主要用于处理请求与响应的生命周期,提供了一种灵活的方式来实现诸如权限检查、日志记录、性能监控等功能。拦截器在请求到达控制器(Controller)之前...

    java之spring mvc之拦截器.docx

    在Spring MVC框架中,拦截器(Interceptor)是一个...通过以上描述,我们可以了解到Spring MVC中的拦截器机制以及如何自定义和配置拦截器来实现特定的功能。这为开发者提供了灵活的手段来增强应用程序的功能和安全性。

    spring boot 登录拦截器

    Spring Boot利用Spring MVC的Filter或者Interceptor机制来实现拦截器。这里我们主要关注`HandlerInterceptor`接口,它提供了三个方法: 1. `preHandle(HttpServletRequest request, HttpServletResponse response, ...

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

    首先,了解拦截器(Interceptor)在Spring MVC中的角色。拦截器是Spring MVC提供的一种AOP(面向切面编程)特性,允许我们在请求处理之前、之后或者在视图渲染之后进行一些预处理或后处理操作。我们可以利用拦截器来...

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

    为了在项目中使用这个拦截器,你需要将其配置到Spring MVC的DispatcherServlet配置中,通常在`web.xml`或Spring的配置文件中。添加`&lt;mvc:interceptors&gt;`元素,并在其中定义你的拦截器bean。 最后,需要注意的是,...

    SpringMvc 拦截器

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

    springmvc-interceptor

    在Spring MVC框架中,拦截器(Interceptor)是一个至关重要的组件,它允许开发者在请求处理之前、之后或在处理过程中执行自定义逻辑。拦截器可以用于实现日志记录、权限检查、性能统计、事务管理等多种功能,极大地...

    spring mvc_09

    在"spring mvc annotation interceptor"这个主题中,我们将深入探讨如何利用注解来配置和实现Spring MVC的拦截器。 1. **注解驱动的Spring MVC** - `@Controller`: 这个注解标记一个类为处理HTTP请求的控制器。它...

    Java SpringBoot实现的过滤器(和拦截器)控制登录页面跳转

    通过过滤器或拦截器,我们可以检查每个请求的会话(Session)中是否存在有效的登录信息,如果没有,就将其重定向到登录页面。 6. **使用说明**: 在使用这个项目之前,你需要了解SpringBoot的基本配置和Thymeleaf...

    spring配置JSON拦截器VIEW

    标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...

    Spring MVC开发配置

    此外,还可以配置拦截器(Interceptor)进行预处理或后处理操作,以及数据绑定、异常处理等高级功能。 在实际开发中,还需要注意以下几点: 1. 引入Spring MVC的依赖:确保你的项目包含了Spring MVC的jar包或者相应...

    Mastering Spring MVC 4(2015.09)源码

    总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...

    Spring MVC 拦截器 interceptor 用法详解

    Spring MVC 拦截器 interceptor 用法详解 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的...

    SpringMVC中使用Interceptor拦截器

    本篇文章将深入探讨如何在Spring MVC中使用Interceptor拦截器。 首先,Interceptor的实现需要继承自`HandlerInterceptor`接口或者实现`HandlerInterceptorAdapter`适配器类,这两个类都包含三个核心方法: 1. `...

    spring mvc 整合包

    10. **拦截器(Interceptor)**:Spring MVC允许自定义拦截器,实现预处理和后处理功能,例如权限检查、日志记录等。 11. **转换器和格式化器(Converter & Formatter)**:处理请求参数和模型属性之间的类型转换,...

    Spring mvc5.0.3 所有jar包

    9. **拦截器(Interceptor)**: Spring MVC允许自定义拦截器,可以在请求处理前或后执行一些通用逻辑,如权限检查、日志记录等。 10. **异常处理**: 可以全局或局部地配置异常处理器,将异常转换为特定的视图或HTTP...

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

    在本篇文章中,我们详细探讨了如何通过Spring MVC拦截器实现session的控制,特别是在处理用户登录状态和防止重复登录的场景。 首先,session监听是实现session控制的一种常见方法,通过实现特定的监听器接口,可以...

    Spring MVC 配置请求的默认处理器.rar

    综上所述,配置Spring MVC请求的默认处理器涉及到web.xml的DispatcherServlet配置、Spring MVC配置文件的编写以及处理器映射、适配、拦截器和异常处理等相关组件的设置。理解并熟练掌握这些知识点,对于开发高效、...

    Spring MVC 基础实例源码01

    12. **Interceptor**:拦截器,允许在请求处理前后执行自定义逻辑,如日志记录、权限检查等。 13. **View Technologies**:Spring MVC支持多种视图技术,如JSP、Thymeleaf、FreeMarker等,可以根据项目需求选择。 ...

Global site tag (gtag.js) - Google Analytics