当前位置: 首页 > news >正文

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

Xml代码   收藏代码
  1. <?xml  version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans     
  6.         http://www.springframework.org/schema/beans/spring-beans.xsd    
  7.         http://www.springframework.org/schema/context     
  8.         http://www.springframework.org/schema/context/spring-context.xsd    
  9.         http://www.springframework.org/schema/mvc     
  10.         http://www.springframework.org/schema/mvc/spring-mvc.xsd"  
  11.     default-autowire="byName">  
  12.     <!-- auto register Processor -->  
  13.     <context:annotation-config />  
  14.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  15.         <property name="basePackage" value="com.anxin.msapweb.db.mybatis.mapper" />  
  16.     </bean>  
  17.   
  18.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  19.         <property name="dataSource" ref="db2dataSource" />  
  20.     </bean>  
  21.   
  22.     <mvc:interceptors>  
  23.         <mvc:interceptor>  
  24.             <!-- 需拦截的地址 -->  
  25.                         <!-- 一级目录 -->  
  26.             <mvc:mapping path="/*.do" />  
  27.             <mvc:mapping path="/*.ajax" />  
  28.             <mvc:mapping path="/*.htm" />  
  29.   
  30.                         <!-- 二级目录 -->  
  31.             <mvc:mapping path="/*/*.do" />  
  32.             <mvc:mapping path="/*/*.ajax" />  
  33.             <mvc:mapping path="/*/*.htm" />  
  34.             <!-- 需排除拦截的地址 -->  
  35.             <mvc:exclude-mapping path="/login.htm"/>  
  36.             <bean class="com.anxin.msapweb.web.interceptor.SecurityInterceptor" />  
  37.         </mvc:interceptor>  
  38.     </mvc:interceptors>  
  39. </beans>  


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

Java代码   收藏代码
  1. package com.anxin.msapweb.web.interceptor;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5. import javax.servlet.http.HttpSession;  
  6.   
  7. import org.springframework.web.servlet.HandlerInterceptor;  
  8. import org.springframework.web.servlet.ModelAndView;  
  9.   
  10. import com.anxin.msapweb.common.Config;  
  11.   
  12. public class SecurityInterceptor implements HandlerInterceptor {  
  13.   
  14.     private static final String LOGIN_URL = "/login.htm";  
  15.   
  16.     @Override  
  17.     public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) throws Exception {  
  18.         HttpSession session = req.getSession(true);  
  19.         // 从session 里面获取用户名的信息  
  20.         Object obj = session.getAttribute(Config.Passport.SESSION_NAME_LOGIN_RESULT);  
  21.         // 判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆  
  22.         if (obj == null || "".equals(obj.toString())) {  
  23.             res.sendRedirect(LOGIN_URL);  
  24.         }  
  25.         return true;  
  26.     }  
  27.   
  28.     @Override  
  29.     public void postHandle(HttpServletRequest req, HttpServletResponse res, Object arg2, ModelAndView arg3) throws Exception {  
  30.     }  
  31.   
  32.     @Override  
  33.     public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object arg2, Exception arg3) throws Exception {  
  34.     }  
  35.   
  36. }  

(原文地址:http://qiaolevip.iteye.com/blog/1827676)

 

相关文章:

  • ASP站点无法访问怎么办
  • 任何一个创业者都要注意的22个经典提示
  • Oracle给Select结果集加锁,Skip Locked(跳过加锁行获得可以加锁的结果集)
  • Vue.js学习系列(三十三)-- Vue.js样式绑定(四)
  • HTTP调试之保持连接状态(微软知识库文章)
  • php将科学计算法得出的结果转换成原始数据
  • 从代码阅读看设计之简洁
  • ftp配置
  • 科技通信:无限流量上4g,已成功办理
  • tomcat 的线程池配置,字符编码设置
  • 六家共享单车加入免押计划 押金模式即将崩盘?
  • TestDriven.NET 2.0 发布了
  • Spring Boot(1) 使用Maven构建Spring Boot项目
  • 除了memory leak和handle leak外的其它资源泄露
  • Windows沾滞键设置
  • 【翻译】babel对TC39装饰器草案的实现
  • Apache Spark Streaming 使用实例
  • canvas 五子棋游戏
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Iterator 和 for...of 循环
  • MQ框架的比较
  • Otto开发初探——微服务依赖管理新利器
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何利用MongoDB打造TOP榜小程序
  • 如何设计一个比特币钱包服务
  • 小程序 setData 学问多
  • No resource identifier found for attribute,RxJava之zip操作符
  • Spring Batch JSON 支持
  • 进程与线程(三)——进程/线程间通信
  • ​configparser --- 配置文件解析器​
  • (2)(2.10) LTM telemetry
  • (2)nginx 安装、启停
  • (2)STL算法之元素计数
  • (3)选择元素——(17)练习(Exercises)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (Python第六天)文件处理
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (十六)Flask之蓝图
  • .aanva
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .Net 路由处理厉害了
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net6使用WebSocket与前端进行通信
  • .net与java建立WebService再互相调用
  • @Query中countQuery的介绍
  • [ActionScript][AS3]小小笔记