Spring boot拦截器的使用&设置

mac2024-05-21  30

java的拦截器要比php的简单,以下代码放在启动类里面。 一定实现接口,否则导包会失败

**启动类要实现接口** **implements WebMvcConfigurer** @Override public void addInterceptors(InterceptorRegistry registry){ //Interceptor需要新建一个class 拦截器文件 InterceptorRegistration ir=registry.addInterceptor(new Interceptor()); ir.addPathPatterns("/**"); //是放开权限,可以直接访问 ir.excludePathPatterns("/ht/yzmtp","/ht/yanzheng","/html/**","/js/**","/ht/dd","/css/**","/images/**","/kindeditor/**","/laydate/**","/upload/**","/vue/**"); }

创建一个拦截器,Interceptor

package com.example.demo; 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 Interceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception{ HttpSession session=request.getSession(); //获得sessio 有值就进入,没有就拦截 Object ob=session.getAttribute("name"); 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(); //可以改变 拦截后跳转页面 String ss="http://127.0.0.1:8080/ht/dd"; response.sendRedirect(ss); 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{ } }
最新回复(0)