简单使用拦截器
Posted bxbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单使用拦截器相关的知识,希望对你有一定的参考价值。
拦截器
参考b站狂神视频
Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。
拦截器重写三个方法,详见参考,其与过滤器的区别参考 https://blog.csdn.net/zxd1435513775/article/details/80556034
为了解决 用户可以不登陆便可进入主页,这是不安全的,为了解决这个问题,便可使用拦截器。
一、新建登录拦截器
LoginHandlerIntercepter.java
package com.example.employee_management.config;
?
import org.springframework.web.servlet.HandlerInterceptor;
?
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
?
/**
* @className: LoginHandlerIntercepter
* @description: 登录拦截器
*/
public class LoginHandlerIntercepter implements HandlerInterceptor {
?
二、在MVC配置类中添加登录拦截器
MyMvcConfig.java
package com.example.employee_management.config;
?
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
?
/**
* @className: MyMvcConfig
* @description: MVC 控制器 借助注解完成控制器而不用手动编写
*/
三、修改登录控制器:添加session来保证拦截器正常运行
LoginController.java
package com.example.employee_management.controller;
?
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
?
import javax.servlet.http.HttpSession;
?
启动项目后,在浏览器中输入
localhost:8080/main.html
便会转入到首页(index.html),并且提示用户尚未登录。 登录拦截器的功能便已完成。
以上是关于简单使用拦截器的主要内容,如果未能解决你的问题,请参考以下文章