zoukankan      html  css  js  c++  java
  • 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 {  
        }  
      
    }  
  • 相关阅读:
    ​《数据库系统概念》5-连接、视图和事务
    ​《数据库系统概念》4-DDL、集合运算、嵌套子查询
    ​《数据库系统概念》3-主键、关系运算
    ​《数据库系统概念》2-存储、事务等的简介
    ​《数据库系统概念》1-数据抽象、模型及SQL
    Web API与JWT认证
    巨杉Tech | 十分钟快速搭建 Wordpress 博客系统
    巨杉内核笔记(一)| SequoiaDB 会话(session)简介
    SequoiaDB巨杉数据库入门:快速搭建流媒体服务器
    微服务?数据库?它们之间到底是啥关系?
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4939883.html
Copyright © 2011-2022 走看看