Sky's blog

          我和我追逐的夢

          常用鏈接

          統(tǒng)計(jì)

          其他鏈接

          友情鏈接

          最新評論

          resin采用url rewrite來傳遞jsessionid

          前段時(shí)間做公司前臺方案的技術(shù)探索時(shí),涉及到j(luò)sseionid的傳遞,期間嘗試使用resin自己的url rewrite功能來傳遞jsessionid參數(shù),總結(jié)如下:

          一) 默認(rèn)的jsessionid

          默認(rèn)配置中,jsessionid以cookie的方式在頁面?zhèn)鬟f,即在http請求的header中有以下內(nèi)容:

          Cookie: JSESSIONID=abcrmF3Gx-5Z-hhkgHfzr

          此時(shí)resin/conf/resin.conf中的配置為默認(rèn)的:
          <session-config>
          <enable-url-rewriting>false</enable-url-rewriting>
          </session-config>

          二)使用url rewrite傳遞jsessionid

          將jsessionid放到url中,這樣可以不使用cookie。
          不使用cookie,可以避免遭遇用戶禁用cookie的情況。另外,有安全性方面的考慮。

          使用url rewrite有兩種方式:

          1. http://***/wmail/welcome.action;jsessionid=abcLFJLwoeurlsjdlf?...
          這種是將jsessionid放在action后面

          需要修改resin/conf/resin.conf中的配置為:
          <session-config>
          <enable-cookies>false</enable-cookies>
          <enable-url-rewriting>true</enable-url-rewriting>
          </session-config>

          2. http://***/~jid=abcLFJLwoeurlsjdlf/wmail/welcome.action?...

          除了要按照前面的同樣修改resin/conf/resin.conf中的配置為:
          <session-config>
          <enable-cookies>false</enable-cookies>
          <enable-url-rewriting>true</enable-url-rewriting>
          </session-config>

          還要在resin/conf/resin.conf中增加alternate-session-url-prefix的設(shè)置:
          <server>
          <class-loader>...</class-loader>
          <alternate-session-url-prefix>/~jid=</alternate-session-url-prefix>
          ......

          注意alternate-session-url-prefix的位置,不是在<session-config>里面

          測試中發(fā)現(xiàn),按照這種方式配置后,url被重寫為
          http://***/~jid=abcLFJLwoeurlsjdlf/wmail/welcome.action?...

          在瀏覽器中訪問會產(chǎn)生http 404 file not found 錯(cuò)誤,經(jīng)反復(fù)檢查(吐血的經(jīng)歷),發(fā)現(xiàn)需要修改resin/conf/resin.conf中的配置:

          <server>
          ......
          <host id="" root-directory=".">
          <!--
          <web-app id="/" document-directory="webapps/ROOT"/>
          -->
          </host>
          </server>
          將<web-app id="/" document-directory="webapps/ROOT"/>的設(shè)置屏蔽后才能正常訪問
          http://***/~jid=abcLFJLwoeurlsjdlf/wmail/welcome.action?...
          這樣的地址。

          posted on 2007-12-05 15:49 sky ao 閱讀(2770) 評論(0)  編輯  收藏 所屬分類: web

          主站蜘蛛池模板: 高州市| 吉首市| 永宁县| 赤城县| 离岛区| 郁南县| 根河市| 绵竹市| 商都县| 庄河市| 安化县| 内丘县| 和龙市| 高青县| 南乐县| 蕲春县| 武陟县| 邓州市| 新民市| 明水县| 沧州市| 朔州市| 七台河市| 通河县| 凤山县| 平阴县| 宁晋县| 美姑县| 盘锦市| 陆丰市| 耿马| 新干县| 云阳县| 兰州市| 灌云县| 庆云县| 靖远县| 卢氏县| 湘潭市| 新郑市| 徐州市|