【发布时间】:2015-02-10 16:33:01
【问题描述】:
我有一个 JSF 2.0 应用程序,我们称之为“MyApp”,带有一个 SessionScoped bean,它使用以下代码获取会话并在初始化时设置路径...
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); //Get request from external context
HttpSession session = request.getSession(false); //Get session and don't create one if it doesn't exist
session.getServletContext().getSessionCookieConfig().setPath(""); //Set the path in the session's cookie
我的问题是更新的路径 ("") 不会显示在响应会话 cookie JSESSIONID 中,直到对应用程序的第二次请求。第一个请求在响应中使用默认路径获取JSESSIONID cookie,其中包括应用程序的根上下文(“/MyApp”)。如果我重新加载页面,第二个请求将得到一个带有 JSESSIONID cookie 的响应,其中包含更新后的路径 ("")。
我似乎找不到任何关于何时创建默认 JSESSIONID cookie 并将其添加到响应中的文档。我不确定是否在第一个响应的 JSESSIONID cookie 中设置了更新的会话路径,或者它是否被页面的默认 JSESSIONID cookie 设置和覆盖。
问题:
- 默认 JSESSIONID cookie 何时添加到响应中?
- 是否可以禁止创建页面的默认 JSESSIONID cookie?
【问题讨论】:
标签: jsf session cookies jsf-2 jsessionid