Spring boot 加入拦截器

mac2024-05-07  33

1. 把 拦截器 文件 Interceptor1.java 放到 与控制器 同级目录

package com.example.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class Interceptor1 implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception{ HttpSession session=request.getSession(); Object ob=session.getAttribute("name"); //登录时建立的session名字 if (ob!=null) { return true; } session.setAttribute("preurl",request.getRequestURI()); StringBuffer url = request.getRequestURL(); String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).append("/").toString(); response.sendRedirect("/login/login"); //如果访问其他页面跳转到该页面 return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView model) throws Exception{ } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,Exception ex) throws Exception{ } }

2. 需要拦截器 放到 启动类中 , 把登陆 放到拦截器之外

@SpringBootApplication public class DemoApplication implements WebMvcConfigurer{ @Override public void addInterceptors(InterceptorRegistry registry){ InterceptorRegistration ir=registry.addInterceptor(new Interceptor1()); ir.addPathPatterns("/**"); // ir.excludePathPatterns("/stu/save","/stu/getClassGid","/stu/pageList","/stu/getClassAll","/index/index","/index/right","/stu/news","/stu/pageList","/stu/indexData","/stu/getEditData","/stu/getClass","/stu/del","/stu/edit","/stu/login","/stu/index","/stu/add","/js/**","/html/**","/images/**","/css/**"); ir.excludePathPatterns("/login/login","/login/dologin","/login/yzm","/js/**","/html/**","/images/**","/css/**"); //允许访问的文件路径 } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

导入文件 :

import com.example.controller.Interceptor1;

3. 登陆时候 建立 session 名称为 name 的 个给其赋值 。

最新回复(0)