Session跟踪
Web容器使用了一些方法使用户和特定的session相关联,这些方法在客户端与服务器端之间传递session的标识。这个标识可以作为cookies在客户端被维护,或者Web组件把这个标识包含在每个URL中返回到客户端。
如果应用需要使用session对象,那么开发人员必须确保在用户关闭cookies的情况下,应用能够改写URL使session跟踪功能激活。在所有返回给用户URL之前都调用response的encodeURL(URL)方法,这样在用户关闭cookies的情况下URL中就会包含session ID,否则不改变URL。 例如:
out.println("<p> <p><strong><a href=/"" +
response.encodeURL(request.getContextPath() + "/catalog") +
"/">" + messages.getString("ContinueShopping") +
"</a> " +
"<a href=/"" +
response.encodeURL(request.getContextPath() + "/cashier") +
"/">" + messages.getString("Checkout") +
"</a> " +
"<a href=/"" +
response.encodeURL(request.getContextPath() +
"/showcart?Clear=clear") +
"/">" + messages.getString("ClearCart") +
"</a></strong>");上面的代码改写了三个URL,如果客户端关闭 cookies,则URL被改写为:
http://localhost:6888/bookstore1/cashier; jsessionid=wKgUUxroPN$HVmpTkhU6YPLTqyMA
如果客户端cookies未关闭,则URL不作任何改变:
http://localhost:6888/bookstore1/cashier
本文介绍了Web容器中Session跟踪的方法,即通过在客户端与服务器端传递session标识关联用户与特定session,标识可作为cookies维护或包含在URL中。还指出开发人员需确保在用户关闭cookies时,通过调用response的encodeURL方法改写URL激活session跟踪功能,并给出了代码示例。
594

被折叠的 条评论
为什么被折叠?



