2007-12-29
谁在创建session(3)-凑热闹的webwork标签
按照前面的方法,将jsp页面加入<%@ page session="false"%>之后,发现还是有新的session会意外的蹦出来。仔细检查action没有操作session,那这次是谁干的呢?将目光转回jsp文件,首先来次狠的,将这个jsp文件的内容删空为只有纯html内容。重新运行后发现不会自动生成session,ok,问题在jsp文件里面了。将原来的内容一点点的加回去,反复测试直到session自动创建的问题再次出现, 哈,发现问题出现在webwork的标签上。
这次出问题的a.jsp代码内容为:
部署到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" %>
再次测试,发现不再创建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。搞定!
这次出问题的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。搞定!
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 40118 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
谁在创建session(4)-为什 ...
resin下session默认是false
-- by helloint -
namespace对axis解析xml ...
这还算好呀,我们也是这样。。 cx公司很多的都是别的公司的外包人员在搞,水平参差 ...
-- by chump.lee -
namespace对axis解析xml ...
jameswxx 写道同情楼主,跟这些人共事。 不算共事吧,其实他们和我们公司 ...
-- by skydream -
namespace对axis解析xml ...
那个cx公司的开发人员真够.....,想不通一个webservice客户端有这么 ...
-- by jameswxx -
namespace对axis解析xml ...
呵呵,难得你把这么久的帖子顶出来。上面的故事,技术方面的东西没有什么,但是整个事 ...
-- by skydream






评论排行榜