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;
/**
* @ClassName 类名 : LoginInterceptor
* @Description 作用 : 登录的拦截器
*/
public class LoginInterceptor implements HandlerInterceptor {
/**
* Handler执行之前调用这个方法
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// 获取请求的URL
String url = request.getRequestURI();
String queryString = request.getQueryString();
// 获取session
HttpSession session = request.getSession();
// 当URL以/user开头时,代表链接需要登录才可以打开
if (url != null && url.indexOf("/user") == 0) {
// 获取Session
String username = (String) session.getAttribute("username");
if(null != queryString && !"".equals(queryString)){
url = url + "?" + queryString;
}
if (username == null || username == "") {
// 记录初始的路径
session.setAttribute("targetUrl", url);
// 重定向到登录页面
response.sendRedirect("/page/login.html");
return false;
}
}
return true;
}
/**
* Handler执行完成之后调用这个方法
*/
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e)
throws Exception {
}
/**
* Handler执行之后,ModelAndView返回之前调用这个方法
*/
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView model)
throws Exception {
}
}
【笔记】登录拦截器
最新推荐文章于 2025-03-06 19:55:07 发布
本文介绍了一个Spring MVC项目中实现的登录拦截器(LoginInterceptor),该拦截器用于检查用户是否已登录。当用户尝试访问需要登录权限的URL时,拦截器会验证session中的用户名,如果没有登录则重定向至登录页面。
1327

被折叠的 条评论
为什么被折叠?



