侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

过滤器

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 105 阅读 / 1,035 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
在匹配的请求被处理前和处理后分别执行一段代码。

/* 会匹配所有导致图片和css加载失败
特点
可以配置多个过滤器,过滤顺序是从匹配范围小的那个开始,然后从范围大的那个结束

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@WebFilter("userFilter")
public class UserFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
    Filter.super.init(filterConfig);
}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    User user;
    if ((user = (User) request.getSession().getAttribute("loginUser")) == null) {
        user = new User();
        user.setUserName("顾客" + request.getSession().getId().substring(0, 4));
        user.setSessionId(request.getSession().getId());
        request.getSession().setAttribute("loginUser", user);
    }
    filterChain.doFilter(servletRequest, servletResponse);
}

@Override
public void destroy() {
    Filter.super.destroy();
}

}

0

评论区