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

目 录CONTENT

文章目录

过滤器

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

/* 会匹配所有导致图片和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

评论区