package com.cyf.web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebFilter("/*")
public class LoginFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
// 强转
HttpServletRequest request = (HttpServletRequest) req;
// 创建集合,放入所有要放行的路径
String[] urls = {"/CheckServlet","/AdduserServlet","/LoginServlet","/css/","/imgs/","/login.jsp","/register.jsp","/SelectByUsernameServlet"};
// 获取访问路径
String url = request.getRequestURL().toString();
// 遍历集合
for (String u : urls) {
// 判断获取的路径和访问路径是否相等
if (url.contains(u)){
// 放行
chain.doFilter(req, resp);
return;
}
}
// 获取session对象
HttpSession session = request.getSession();
// 查看session是否有存入值
Object emp = session.getAttribute("Emp");
if (emp==null){
// 如果没有值,说明用户未登录
request.setAttribute("msg","请登录");
// 跳转到登录界面
request.getRequestDispatcher("/login.jsp").forward(request,resp);
}else {
// 登录了就放行
chain.doFilter(req, resp);
}
}
public void destroy() {
}
public void init(FilterConfig config) throws ServletException {
}
}
【代码】过滤器filter
于 2022-02-09 23:34:02 首次发布