Sky's blog

我和我追逐的梦

常用链接

统计

其他链接

友情链接

最新评论

谁在创建session(3)-凑热闹的webwork标签

    按照前面的方法,将jsp页面加入<%@ page session="false"%>之后,发现还是有新的session会意外的蹦出来。仔细检查action没有操作session,那这次是谁干的呢?将目光转回jsp文件,首先来次狠的,将这个jsp文件的内容删空为只有纯html内容。重新运行后发现不会自动生成session,ok,问题在jsp文件里面了。将原来的内容一点点的加回去,反复测试直到session自动创建的问题再次出现, 哈,发现问题出现在webwork的标签上。

这次出问题的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。搞定!


posted on 2007-12-19 17:25 sky ao 阅读(1677) 评论(1)  编辑  收藏 所属分类: web

评论

# re: 谁在创建session(3)-凑热闹的webwork标签 2007-12-19 20:21 交口称赞

好奇楼主这么执著

session到底怎么惹您了?

您有什么样的需求需要这么密切关注session的生成时间?

看您的意思是不想生成session最好
为什么?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: