Filter(三) -- Filter案例(一)-- 解决中文乱码
沿用上一篇文章的案例代码,添加新的Filter过滤器, 验证用户是否登录,没登录不让访问主页和列表页。
@WebFilter("/*")
public class LoginFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
//1.获取当前请求路径
HttpServletRequest request = (HttpServletRequest) req;
String uri = request.getRequestURI();
//2.判断当前请求是否是与登录相关的请求
if(uri.contains("/loginServlet") || uri.contains("/checkCode") || uri.contains("/login.jsp") ||
uri.contains("/css") || uri.contains("/fonts") || uri.contains("/js")){
//是登录的资源
chain.doFilter(req, resp);
}else{
//不是登录相关的请求
//3.判断是否登录, Session中是否存在user
HttpSession session = request.getSession();
Object user = session.getAttribute("loginAdmin");
if(user != null){
//用户已登录,放行
chain.doFilter(req, resp);
}else{
//用户未登录,返回登录页面,给出提示
req.setAttribute("msg","请重新登陆");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
}
public void init(FilterConfig config) throws ServletException {
}
}
如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!