SpringMVC拦截器(登录实现)

SpringMVC拦截器

使用步骤

1.自定义拦截器 需要实现 HandlerInteceptor接口。

package com.edu.Intercepter;

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

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

public class LoginLntercepter implements HandlerInterceptor {
    /*在执行Controller方法前拦截,判断用户是否已经登录,
		登录了就放行,还没登录就重定向到登录页面*/
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        Object user = session.getAttribute("user");
        if (user==null){
            // 还没有登录,重定向 登录页面
            System.out.println("小白同学你还没有登录哦~~~~~~~~~~~~~");
            response.sendRedirect(request.getContextPath()+"/login");
            return false;
        }
        //已经登陆,放行
        return true;
    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("在处理器 方法执行完之后,视图渲染之前 执行。preHandle返回true才执行");
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("在视图渲染完毕之后执行,一旦之前的过程中出现异常,会直接执行 afterCompletion。preHandle返回true才执行");
    }
}

2.拦截器注册(spring-mvc)

<mvc:interceptors>
        <mvc:interceptor>
            <!-- mvc:mapping:拦截的路径
            /**:是指所有文件夹及其子孙文件夹
            /*:是指所有文件夹,但不包含子孙文件夹
            /:Web项目的根目录-->
            <mvc:mapping path="/**"/>
            <!--
            mvc:exclude-mapping:不拦截的路径,不拦截登录路径
            /toLogin:跳转到登录页面
            /login:登录操作
        -->
        	 <mvc:exclude-mapping path="/css/**"/>
            <mvc:exclude-mapping path="/img/**"/>
            <mvc:exclude-mapping path="/js/**"/>
            <mvc:exclude-mapping path="/login"/>
            <mvc:exclude-mapping path="/dologin"/>
            <!-- 拦截器的类型     -class属性就是我们自定义的拦截器      -->
            <bean class="com.edu.Intercepter.LoginLntercepter" id="loginInterceptor"></bean>
        </mvc:interceptor>
    <!--如果还有其他拦截器,那么还是按照上面的拦截器配置-->
    </mvc:interceptors>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值