Springmvc实现登录拦截

本小妞迷上赌 提交于 2020-01-10 07:32:27

以登录拦截为例 如果不进行登录验证不能访问除登陆页面外的其他页面

登录拦截的class

package com.oa.global;

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

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

public class LoginInterceptor implements HandlerInterceptor {
   
//操作前就进行拦截处理
 public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        //获取当前请求的路径
        String url = httpServletRequest.getRequestURI();
       //将login转换为小写再进行比较 存在则返回true
        if(url.toLowerCase().indexOf("login")>=0){
            return true;
        }
       //使用session判断之前是否已经登录
        HttpSession session = httpServletRequest.getSession();
        if(session.getAttribute("employee")!=null){
            return true;
        }
        //重定向到登录页面进行登录操作
        httpServletResponse.sendRedirect("/to_login");
        return false;
    }
//
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }
//
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

登录拦截的springmvc.xml配置

 <mvc:interceptors>
        <mvc:interceptor>
            //拦截所有请求
            <mvc:mapping path="/**"/>
            <bean class="拦截器类在项目中的位置例如com.oa.LoginInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!