每日一得

          不求多得,只求一得 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 閱讀(359) 評論(0)  編輯  收藏 所屬分類: web技術
          主站蜘蛛池模板: 绍兴市| 仲巴县| 长宁县| 安达市| 武陟县| 紫阳县| 黑河市| 文昌市| 娄底市| 临泽县| 南宁市| 犍为县| 锡林浩特市| 东乌珠穆沁旗| 万安县| 洮南市| 泽州县| 平南县| 巴林右旗| 榆树市| 锦州市| 泗洪县| 鹿泉市| 开化县| 延庆县| 海宁市| 仪陇县| 绥化市| 达日县| 江都市| 石门县| 安阳市| 庆元县| 阳原县| 青神县| 丰县| 阿拉善右旗| 枣强县| 武宣县| 富锦市| 永顺县|