Sky's blog

          我和我追逐的夢(mèng)

          常用鏈接

          統(tǒng)計(jì)

          其他鏈接

          友情鏈接

          最新評(píng)論

          誰在創(chuàng)建session(3)-湊熱鬧的webwork標(biāo)簽

              按照前面的方法,將jsp頁(yè)面加入<%@ page session="false"%>之后,發(fā)現(xiàn)還是有新的session會(huì)意外的蹦出來。仔細(xì)檢查action沒有操作session,那這次是誰干的呢?將目光轉(zhuǎn)回jsp文件,首先來次狠的,將這個(gè)jsp文件的內(nèi)容刪空為只有純html內(nèi)容。重新運(yùn)行后發(fā)現(xiàn)不會(huì)自動(dòng)生成session,ok,問題在jsp文件里面了。將原來的內(nèi)容一點(diǎn)點(diǎn)的加回去,反復(fù)測(cè)試直到session自動(dòng)創(chuàng)建的問題再次出現(xiàn), 哈,發(fā)現(xiàn)問題出現(xiàn)在webwork的標(biāo)簽上。

          這次出問題的a.jsp代碼內(nèi)容為:

          ?<%@ 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訪問,通過抓包工具發(fā)現(xiàn)有
          Set-Cookie: JSESSIONID=abclEpuvWZhHD_UWW7WBr; path=/

          將上述文件復(fù)制為b.jsp,刪除<ww:i18n>標(biāo)簽,代碼修改為:

          ?<%@ 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>
          再次測(cè)試,發(fā)現(xiàn)不再創(chuàng)建session,由此可以確認(rèn)是webwork的標(biāo)簽所為。

          繼續(xù)追蹤為什么webwork的標(biāo)簽會(huì)如此處理,還是google大法,很快在webwork的2.2文檔中發(fā)現(xiàn)了這么一段:

          http://wiki.javascud.org/display/ww2cndoc/WebWork+2.2+Migration+Notes

          "session map wrapper (在ActionContext里建立的) 已經(jīng)改變了不在為每個(gè)請(qǐng)求創(chuàng)建session. 如果你的應(yīng)用程序依賴session會(huì)被自動(dòng)創(chuàng)建,WebWork 2.2已經(jīng)不在那樣做了.作為替代,你必須自己創(chuàng)建session或者當(dāng)把一個(gè)數(shù)據(jù)放到session Map里時(shí)session會(huì)被創(chuàng)建. "

          對(duì)照了一下我當(dāng)前測(cè)試的版本, webwork2.1.7,看來是這里了。馬上上webwork的網(wǎng)站下了最新的2.2.6版本,最快速度搭建了一個(gè)測(cè)試環(huán)境。將剛才的a.jsp/b.jsp拉過去測(cè)試了以下,ok,果然新的2.2版本修改了原來的做法,不再創(chuàng)建session。搞定!


          posted on 2007-12-19 17:25 sky ao 閱讀(1688) 評(píng)論(1)  編輯  收藏 所屬分類: web

          評(píng)論

          # re: 誰在創(chuàng)建session(3)-湊熱鬧的webwork標(biāo)簽 2007-12-19 20:21 交口稱贊

          好奇樓主這么執(zhí)著

          session到底怎么惹您了?

          您有什么樣的需求需要這么密切關(guān)注session的生成時(shí)間?

          看您的意思是不想生成session最好
          為什么?  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 东乡族自治县| 安龙县| 沙田区| 大关县| 宣恩县| 博野县| 马公市| 高尔夫| 抚远县| 丰镇市| 胶南市| 开封市| 黄冈市| 莱州市| 鲁山县| 明光市| 呼玛县| 新兴县| 青冈县| 辛集市| 保亭| 南澳县| 黄浦区| 青岛市| 青铜峡市| 松潘县| 山西省| 平利县| 辉县市| 姚安县| 缙云县| 慈利县| 屯门区| 乌拉特前旗| 长汀县| 大田县| 玉溪市| 尼玛县| 孟连| 榆社县| 井冈山市|