1

如果 cookie 被禁用,Servlet API将求助于 URL 重写。我们在 JSP 中提供的每个 URL 都必须在其中c:url才能生效。但是,在Struts 2中,有一个等效的 tag s:url,但它的文档没有说明自动将 url 重写信息(如果需要)添加到 url。它在这方面的行为是否与 Struts 2 中的类似c:url,或者我们是否有其他方法可以在 Struts 2 中实现相同的效果?

我正在使用此处的 Struts 2.1 url 标签参考

澄清:如果用户禁用 cookie,另一个选项是将 附加jseesionid到页面上的每个 url。c:url为我们处理。我的问题是,是否s:url对我们做同样的事情。我很担心,因为我在上面提供的文档链接中没有提到它。

4

1 回答 1

2

是的,struts2 也会这样做。只需禁用 cookie,您应该会看到会话 id 被放入 url(使用 s:a 标签时,我没有测试 url 标签)。很高兴您添加了说明,因为这是 url 写作。url 重写是在 url 进入服务器时完成的,然后它们通常被某些规则重写,因此它们被定向到服务器内的正确位置(这根本不是这里发生的事情)。

编辑:感谢 Daud,正确的术语是 url-rewiting。这是因为会话管理由容器级别处理,尽管 struts2 可以操纵会话包含的内容,但它是容器通过“会话管理器”对象提供会话并确定如何最好地管理持久性(包括生成 jSession Id) .

有关glassfish的详细信息:http : //docs.oracle.com/cd/E18930_01/html/821-2418/beaha.html#beahf

有关tomcat的详细信息:http : //tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Disable_Session_Persistence

对于其他容器只需谷歌:Container_Name +“会话管理器”

于 2012-04-05T06:03:32.997 回答