session实现登录
生活随笔
收集整理的這篇文章主要介紹了
session实现登录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、用戶登錄之前不管是哪個鏈接,都會跳轉到登錄界面
2、在登陸成功之后,添加session用戶信息
3、如果在有session認證的情況下訪問,無需登錄
用戶從登錄界面進來后,把用戶信息存儲到session里面,?每次退出登錄就把session里用戶清除。
每次用戶訪問程序都會查session里有沒有這個用戶信息,如果沒有就跳到登陸界面,如果有就跳轉用戶以前的界面無需在登錄。
首先編寫攔截器
攔截用戶訪問的路徑
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;//攔截器配置類 @Configuration public class LoginConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {InterceptorRegistration reg = registry.addInterceptor(new UserLoginInterceptor());reg.addPathPatterns("/**");// /** 是攔截所有路徑reg.excludePathPatterns(//不攔截的白名單-和靜態資源"/login","/login_Ajax","/layui/**" );} }實現HandlerInterceptor 接口
HandlerInterceptor接口中定義了三個方法。
public boolean preHandle() 這個方法是在執行controller之前執行,如果為true就繼續執行controller,如果是false就放棄執行 public?void postHandel() public void afterCompletion() import com.express.pojo.User; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;public class UserLoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("執行了攔截器的preHandle方法");try {HttpSession session = request.getSession();//統一攔截(查詢當前session是否存在user)(這里user會在每次登錄成功后,寫入session)User user = (User) session.getAttribute("user");if (user != null){return true;}//不為true 就重定向到longin登錄頁面response.sendRedirect(request.getContextPath() + "login");}catch (Exception e){e.printStackTrace();}return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("執行了攔截器的postHandle方法") ;}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("執行了攔截器的afterCompletion方法");} }用戶登錄進來之后,給用戶信息存到session里面
req.getSession().setAttribute("user", user);
用戶點擊退出就清除session
session.setAttribute("user", null);?
總結
以上是生活随笔為你收集整理的session实现登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thymeleaf th:if else
- 下一篇: 国内nacos下载