JAVA可以用过滤器向SESSION传值吗

2024-12-16 03:33:08
推荐回答(3个)
回答1:

可以的,代码如下

public class SessionFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest hrequest = (HttpServletRequest)request;
        HttpSession session=hrequest.getSession();
        session.setAttribute("user","laowang");
    }

    public FilterConfig config;

    public void destroy() {
        this.config = null;
    }
    public void init(FilterConfig filterConfig) throws ServletException {
        config = filterConfig;
    }
}

回答2:

毫无疑问是可以的,在filter中,你可以通过request来获取当前session,然后你可以把相关值放到session中

回答3:

不知道你问的是技术还是规范:
1、技术
过滤器的参数中,有一个是request,通过request.getSession(true)可以获取到关联的session对象(request的类型需要强转),然后通过session.setAttribute设置参数即可。
2、规范
通常来说,上面的情况没有明显的业务场景,一般有的场景是:过滤器检测到一些特殊的情况的时候,直接通过request.setAttribute来将一些配置set到request对象上,这样在servlet/Action/Controller就可以获取到这些参数进行业务处理了。