浏览 2184 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-29
这次出问题的a.jsp代码内容为: <%@ page contentType="text/html; charset=UTF-8" %> <%@ page session="false" %> <%@taglib prefix="ww" uri="webwork" %> <!DOCTYPE html PUBLIC "-//W3C/m/DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <ww:i18n name="'msg'"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <%=1%> </body> </html> </ww:i18n> 部署到webapp的根目录,在浏览器中直接用http://****/a.jsp访问,通过抓包工具发现有 Set-Cookie: JSESSIONID=abclEpuvWZhHD_UWW7WBr; path=/ 将上述文件复制为b.jsp,删除<ww:i18n>标签,代码修改为: <%@ page contentType="text/html; charset=UTF-8" %> <%@ page session="false" %> <%@taglib prefix="ww" uri="webwork" %> <!DOCTYPE html PUBLIC "-//W3C/m/DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <%=1%> </body> </html> 再次测试,发现不再创建session,由此可以确认是webwork的标签所为。 继续追踪为什么webwork的标签会如此处理,还是google大法,很快在webwork的2.2文档中发现了这么一段: http://wiki.javascud.org/display/ww2cndoc/WebWork+2.2+Migration+Notes "session map wrapper (在ActionContext里建立的) 已经改变了不在为每个请求创建session. 如果你的应用程序依赖session会被自动创建,WebWork 2.2已经不在那样做了.作为替代,你必须自己创建session或者当把一个数据放到session Map里时session会被创建. " 对照了一下我当前测试的版本, webwork2.1.7,看来是这里了。马上上webwork的网站下了最新的2.2.6版本,最快速度搭建了一个测试环境。将刚才的 a.jsp/b.jsp拉过去测试了以下,ok,果然新的2.2版本修改了原来的做法,不再创建session。搞定! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |