Spring MVC实现拦截器功能

Spring MVC实现拦截器功能

Hello,大家好,本篇为大家带来Spring MVC常用功能,拦截器,主要用于防跳墙功能,下面开始正文

这里举例为用户管理系统实现防跳墙功能,防止用户未登录访问主页,直接转至登陆页

效果图

数据表准备

t_user_info用户表

CREATE TABLE `t_user_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `userpwd` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `realname` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `head_img_relative_path` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
)

项目结构

Spring MVC实现拦截器功能_第1张图片

核心源码

LoginInteceptor

package com.wanshi.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

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

public class LoginInterceptor implements HandlerInterceptor {
     

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
     
        //1.对登录,注册,风格直接放行
        //获取请求的uri地址
        String uri = request.getRequestURI();
        if (uri.contains("login")) {
     
            return true;
        }

        //2.进行session验证
        Object user = request.getSession().getAttribute("user");
        if (user == null) {
     
            request.getRequestDispatcher("/WEB-INF/pages/login.jsp")
                    .forward(request, response);
            return false;
        }
        return true;
    }
}

spring-mvc配置文件增加拦截器配置

<mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean id="loginInterceptor" class="com.wanshi.interceptor.LoginInterceptor"/>
        mvc:interceptor>
    mvc:interceptors>

OK,本文到此结束,拦截器的目的就是为了实现防跳墙,即防止用户在未登录的情况下访问主页

下篇见,下方有完整项目链接地址!

您可以给我 点赞 收藏 关注 评论哦~~

链接:拦截器示例

提取码:545d

感谢您的支持!

你可能感兴趣的:(Spring,MVC,spring,mvc,java)