每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
          最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

          注:這個說的挺全面,考慮到了兩種情況,一個是超連接,一個是表單

          原文是這里


          Struts Token 機制可以解決這個問題。

          1. ? 防止通過超鏈接重復(fù)訪問 Struts Action

          如果我們要防止 A 的默認(rèn)頁面 J 中指向 K 的超鏈接重復(fù)提交數(shù)據(jù),按照下列步驟即可:

          a. ? 如果 J 是從 Struts Action 轉(zhuǎn)發(fā)而來,我們要在該 Struts Action execute 方法中添加下面的一行:

          ??? saveToken(request);

          b. ? 如果 J 不是從 Struts Action 轉(zhuǎn)發(fā)而來,那么新建一個 Struts Action ,在該 Struts Action excute 方法中增加上面的一行,然后再從該 action 轉(zhuǎn)到 J 頁面。

          c. ? J 頁面中使用 Struts 標(biāo)簽生成指向 K 的超鏈接,如:

          ?? <html:link action="/deleteLayoutAction?layoutId=0" transaction="true" >delete</html:link>

          ?? 注意紅色字體部分。

          d. ? <html:link> 標(biāo)簽指向的 action excute 方法中加入下面的代碼:

          ?? if (!isTokenValid(request)) {

          ???????????????????? return mapping.findForward(" 這種情況下就是重復(fù)提交,轉(zhuǎn)到相應(yīng)的頁面 ");

          ????????????? }

          e All Done.

          2. ? 防止通過表單重復(fù)提交數(shù)據(jù)。

          a. ? 如果 J 是從 Struts Action 轉(zhuǎn)發(fā)而來,我們要在該 Struts Action execute 方法中添加下面的一行:

          ??? saveToken(request);

          b. ? 如果 J 不是從 Struts Action 轉(zhuǎn)發(fā)而來,那么新建一個 Struts Action ,在該 Struts Action excute 方法中增加上面的一行,然后再從該 action 轉(zhuǎn)到 J 頁面。

          c. ? J 頁面中表單 Action 屬性指向的 Struts action excute 方法中加入下面的代碼:

          ?? if (!isTokenValid(request)) {

          ?????????? saveToken(request);

          ???????????????????? return mapping.findForward(" 這種情況下就是重復(fù)提交,轉(zhuǎn)到相應(yīng)的頁面 ");

          ?? saveToken(request);

          ????????????? }

          e All Done.
          posted on 2006-05-08 10:02 Alex 閱讀(359) 評論(0)  編輯  收藏 所屬分類: web技術(shù)
          主站蜘蛛池模板: 武功县| 仙居县| 井冈山市| 洮南市| 印江| 西乡县| 揭西县| 临澧县| 旬阳县| 沭阳县| 丽江市| 祁东县| 海伦市| 镇康县| 博客| 京山县| 腾冲县| 奎屯市| 乐安县| 泸水县| 库车县| 巴彦县| 开化县| 桓台县| 云南省| 仙桃市| 大丰市| 盐城市| 西丰县| 乾安县| 西充县| 宜兰市| 万年县| 峨边| 青铜峡市| 策勒县| 岳阳市| 高台县| 修水县| 峨边| 二连浩特市|