package com.sysware.task.util;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/**
* 登录拦截
*
* @author : WBA
* @version : 2.9.6
* @copyright : Sysware Technology
* @date : 2018/3/23 17:27
*/
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse reponse = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
// 获取请求路径
String path = request.getRequestURI();
// 根据session对象获取用户登录ID
String userId = (String) session.getAttribute("userId");
if (path.contains("/login.jsp")) {
// 若是登录页面,则继续登录
filterChain.doFilter(request, reponse);
return;
} else if (path.contains("/register.jsp")) {
// 若是注册页面则继续注册
filterChain.doFilter(request, reponse);
return;
} else if (userId != null && !"".equals(userId)) {
// 若存在用户ID,则用户已经登录,拦截通过
filterChain.doFilter(request, reponse);
} else {
// 其他请求信息,则返回登录页面
reponse.sendRedirect("login.jsp");
}
}
@Override
public void destroy() {
}
}
拦截器的使用方法
最新推荐文章于 2024-08-17 14:51:54 发布