当前位置:首页 > 编程笔记 > 正文
已解决

springMvc中的拦截器【巩固】

来自网友在路上 184884提问 提问时间:2023-11-21 01:45:30阅读次数: 84

最佳答案 问答题库848位专家为你答疑解惑

先实现下想要的拦截器功能

package com.hmdp.utils;import com.hmdp.entity.User;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class LoginInterceptor implements HandlerInterceptor {/*** 前置拦截器* @param request* @param response* @param handler* @return* @throws Exception*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//获取sessionHttpSession session = request.getSession();Object user = session.getAttribute("user");if(user==null){//不存在,拦截,返回401状态码response.setStatus(401);return false;}//保存信息到ThreadLocalUserHolder.saveUser((User) user);return true;}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {//移除用户UserHolder.removeUser();}
}

配置拦截器:

/*** 拦截器*/
@Configuration
public class MvcConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).excludePathPatterns("/blog/hot","/user/code","user/login");}
}

 @Configuration:当使用`@Configuration`注解标记一个类时,它表示该类是一个配置类,用于定义和配置Spring应用程序的组件和相关配置。

WebMvcConfigurer :是Spring MVC中的一个接口,它允许开发者自定义Spring MVC的某些特性。如果你想自定义Spring MVC而不是完全采用默认配置,那么你可以实现WebMvcConfigurer接口。例如,如果你想更改默认的视图解析器、消息转换器、拦截器等,你可以通过实现WebMvcConfigurer接口来完成。

.excludePathPatterns:这些接口不走拦截

.addInterceptor :是 WebMvcConfigurer 接口中的一个方法,它允许你添加自定义的拦截器(Interceptor)到 Spring MVC 的处理流程中。拦截器可以用于在请求处理之前或之后执行特定的逻辑,例如身份验证、日志记录、性能监控等。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"springMvc中的拦截器【巩固】":http://eshow365.cn/6-40789-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!