SpringBoot 登陸攔截
阿新 • • 發佈:2018-12-17
1.登陸攔截器 :建立一個類 實現 HandlerInterceptor 看具體程式碼
package com.bw.data.portal.conf; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; /** * 登陸攔截 * @author wangmx */ public class LoginHanderInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub //獲取 session中的 使用者資訊 Object user = request.getSession().getAttribute( "fuser" ); if (user == null){ System.out.println( "登陸攔截" ); //跳轉到 登陸的controller /ful/nologin 是直接返回 到登陸介面的 controller request.getRequestDispatcher( "/ful/nologin" ).forward( request,response ); return false; }else { return true; } } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
2.攔截器註冊:建立 一個類繼承 WebMvcConfigurerAdapter 接著看程式碼
package com.bw.data.portal.common.config.mvc; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import com.bw.data.portal.conf.LoginHanderInterceptor; /* * 類描述:springMVC的配置 * @auther wangmx * @create 2018/8/20 */ @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { /** * 登陸攔截 * wangmx */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor( new LoginHanderInterceptor()) .addPathPatterns( "/**" ).excludePathPatterns("/", "/index.jsp","/ful/nologin","/ful/login"); //除了index.jsp 和 /ful/nologin 和 /ful/login 全部攔截 } }
3.登陸的controller:
//登陸攔截之後 跳轉的 controller
@RequestMapping(value = "/nologin")
public String myDataAndReport() {
return "redirect:/login.jsp";
}
登陸頁面 正常採用 from表單提交就可以了