在过滤器内部,我尝试为当前http会话设置一个属性。然后,我使用response.sendRedirect()重定向到另一个资源。资源将请求发送回过滤器。会话第二次丢失会话属性。

请提供一些指针。

第一个请求如下:

HttpSession objSession = request.getSession(true);
objSession.setAttribute("wasRequestURL", completeURL);


第二个请求如下:

if (null != objSession.getAttribute("wasRequestURL") &&
    !"".equals(objSession.getAttribute("wasRequestURL").toString().trim())) {

    requestedURL = objSession.getAttribute("wasRequestURL").toString();

    logger.info("The session value for wasRequestURL is :::"+requestedURL);
}

最佳答案

您很可能在这之间失去了第一个会话对象。这可以通过使用来验证

HttpSession objSession=request.getSession(false);//don't create session when absent


在您的第二个请求中。我几乎可以肯定,由于您的第一个会话丢失,它将返回null。如果是这样,请调查您在会话期间创建的机制/配置。

10-08 07:05