关于struts2的token和session的问题?
电灯泡 2010-10-25 02:47:53 大家好,网上搜了struts2的token机制,有所明白,其中摘录了一段:
服务器端在处理到达的请求之前,将request中的Token值(如果你查看解析后JSP源代码,会发现有个 org.apache.struts.taglib.html.TOKEN的隐藏域)与保存在当前用户session中的令牌值进行比较,看是否匹配。如果一样,则提交处理,否则,根据配置会迁移到指定画面。
在处理完客户端的请求后,服务器端会把处理结果返回给客户端。那么在response发送给客户端之前,将会产生一个新的Token,该Token的值除了传给客户端以外,也会将用户session中保存的旧的Token替换掉。也就是说,隐藏域的token值发生了变化,session中的token也发生了变化。
这时候,如果通过IE的返回按钮,回到原来画面的话,隐藏域中的token值又恢复到变化前,这时候如果再次提交的话,客户端传过来的Token值和服务器端的就不一致,这时候画面会迁移到指定画面。从而避免重复提交。
我的问题:
1 红字部分,保存在当前用户session中的令牌值。如果我还没有登录系统即没有取得session,那request的Token值怎么和当前session的token值(session都还没取得)比较呢?
2 在项目的web.xml的配置中,由配置如下:
<session-config>
<session-timeout>5</session-timeout>
</session-config>
这个配置中的session和登入系统后取得的session有什么区别?是同一个session吗?