每日一得

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

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

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

          原文是這里


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

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

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

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

          ??? saveToken(request);

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

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

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

          ?? 注意紅色字體部分。

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

          ?? if (!isTokenValid(request)) {

          ???????????????????? return mapping.findForward(" 這種情況下就是重復提交,轉到相應的頁面 ");

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

          e All Done.

          2. ? 防止通過表單重復提交數據。

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

          ??? saveToken(request);

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

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

          ?? if (!isTokenValid(request)) {

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

          ???????????????????? return mapping.findForward(" 這種情況下就是重復提交,轉到相應的頁面 ");

          ?? saveToken(request);

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

          e All Done.
          posted on 2006-05-08 10:02 Alex 閱讀(369) 評論(0)  編輯  收藏 所屬分類: web技術
          主站蜘蛛池模板: 清河县| 稻城县| 汨罗市| 右玉县| 漯河市| 文安县| 龙南县| 扶沟县| 平湖市| 新竹县| 泸溪县| 静乐县| 永仁县| 平阴县| 洛隆县| 革吉县| 柞水县| 维西| 新乐市| 平阴县| 石楼县| 武夷山市| 江口县| 绥德县| 安顺市| 尼玛县| 瓮安县| 南漳县| 得荣县| 寿阳县| 苏尼特左旗| 建始县| 桐乡市| 恩平市| 郑州市| 屏东县| 霞浦县| 施秉县| 香格里拉县| 东乌珠穆沁旗| 临潭县|