添加过滤器
This commit is contained in:
parent
4103c36f47
commit
ec3743e55b
53
src/com/landaiqing/filter/UserSessionFilter.java
Normal file
53
src/com/landaiqing/filter/UserSessionFilter.java
Normal file
@ -0,0 +1,53 @@
|
||||
package com.landaiqing.filter;
|
||||
|
||||
|
||||
import jakarta.servlet.*;
|
||||
import jakarta.servlet.annotation.WebFilter;
|
||||
import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author 余胜军
|
||||
* @ClassName UserSessionFilter
|
||||
* @qq 644064779
|
||||
* @addres www.mayikt.com
|
||||
* 微信:yushengjun644
|
||||
*/
|
||||
@WebFilter("/*")// 过滤器所有的请求
|
||||
public class UserSessionFilter implements Filter {
|
||||
private String[] excludeUrls = new String[]{"/login", "/register", "/VerifycodeServlet"};
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||
// 从session获取到用户的会话信息 判断用户是否登录过
|
||||
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
|
||||
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
|
||||
String contextPath = httpServletRequest.getContextPath();
|
||||
// 定义一个数组 哪些 请求是需要排除的
|
||||
for (int i = 0; i < excludeUrls.length; i++) {
|
||||
String excludeUrl = contextPath + excludeUrls[i];
|
||||
String requestURI = httpServletRequest.getRequestURI();
|
||||
if (excludeUrl.equals(requestURI)) {
|
||||
// 放行请求
|
||||
filterChain.doFilter(httpServletRequest, httpServletResponse);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 排除请求
|
||||
HttpSession session = httpServletRequest.getSession();
|
||||
Object user = session.getAttribute("user");
|
||||
if (user == null) {
|
||||
// 当前用户没有登录或者登录会话失效
|
||||
// 重定向到登录页面
|
||||
httpServletResponse.sendRedirect(contextPath+"/login");
|
||||
return;
|
||||
}
|
||||
// 用户已经登录了 正常放行请求
|
||||
filterChain.doFilter(httpServletRequest, httpServletResponse);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user