第一节 登录拦截器

亮子 | 2024-07-23 04:48:04 | 8647 | 0 | 0 | 0

1、登录页面代码

图片alt

    @GetMapping(value = "/auth/login")
    public String login() {
        return "login";
    }

2、定义拦截器

package com.bw.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

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

/**
 * @author 军哥
 * @version 1.0
 * @description: 登录拦截器
 * @date 2024/7/20 11:21
 */

@Component
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //-- 获取用户的session
        HttpSession session = request.getSession();
        Object user = session.getAttribute("user");
        if(user != null) {
            System.out.println("用户登录了,放行~~~~~~~~~~~~~~~~~~~~~");
            return true;
        }

        System.out.println("用户没有登录了,拦截~~~~~~~~~~~~~~~~~~~~~");
        response.sendRedirect("/auth/login.do");

        return false;
    }
}

3、在springMVC.xml中注入拦截器

图片alt

    <!-- 登录拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <!-- 不拦截登录请求-->
            <mvc:exclude-mapping path="/auth/**.do"/>
            <!-- 不拦截静态资源-->
            <mvc:exclude-mapping path="/layui-v2.9.14/**"/>
            <bean class="com.bw.config.LoginInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>