贏在執行

          這個世界上只有兩樣東西愈分享愈多,那就是智慧與愛。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            17 Posts :: 11 Stories :: 13 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(1)

          隨筆分類(9)

          隨筆檔案(17)

          文章分類(11)

          文章檔案(11)

          AJAX專區

          JAVA專區

          LINUX專區

          XMPP專區

          YAHOO-Ext專區

          其他方面

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          java-web-struts2-2.0-防止重復提交之設置-intercept   文章指數:0  CSDN Blog推出文章指數概念,文章指數是對Blog文章綜合評分后推算出的,綜合評分項分別是該文章的點擊量,回復次數,被網摘收錄數量,文章長度和文章類型;滿分100,每月更新一次。

          在用struts2.0標簽開發中,經常要使用form提交.

          通常:

          1)寫一個action類
           此action類完成提交后的保存動作.

          2)寫一個靜態jsp頁面
           寫form,以及輸入input,和提交button.

          3)設置struts*****.xml文件
          配置action名稱以及映射的類和返回結果名稱等.

          問題:

          在點擊"提交"后,我們通常會彈出一個提示信息的頁面,用戶此時有可能會按f5刷新當前提交的action,從而將多個相同的數據保存到了后臺數據庫,并且造成了潛在的安全危險!
          如何避免重復提交呢?

          1) 用<s:token>!
          如在輸入界面的jsp里,設置token標志:

          <form name="myname" action="myaction.do" method="post">

          <input type="text" name="stuName" value="" .../>

          ... ...

          <s:token/>

          <input type="button" onclick="mymethod(this.form);" .../>

          </form> 

          2) 在struts****.xml文件里配置攔截器:

          <!-- 保存 -->
            <action name="Save"
             class="com.yourcom.app.Action.Dataform.saveAction"
             method="Save">
             <interceptor-ref name="defaultStack" />
                      <interceptor-ref name="token" />
                      <result name="invalid.token">/Info/NoBack.jsp</result>                       
                     
             
            </action>

          3)寫一個名稱為NoBack.jsp的提示文件,當重復f5刷新時,將顯示本頁內容,提示"不可重復提交,或者頁面已經過期"

          <s:token/>在最終生成頁面時,自動生成一個unique id,通過它攔截器才能知道頁面是否是同一次提交.

          posted on 2008-02-04 23:57 飛雪(leo) 閱讀(4420) 評論(4)  編輯  收藏

          Feedback

          # re: java-web-struts2-2.0-防止重復提交之設置-intercept [未登錄] 2008-05-15 17:04 java初學者
          謝謝樓主了!!!  回復  更多評論
            

          # re: java-web-struts2-2.0-防止重復提交之設置-intercept 2008-08-03 15:37 topG
          摟主,能再詳細介紹下避免重復提交的機制嗎?
          因為我考慮,如果一個頁面我添加一次數據后,再回到本頁面,然后我再填寫添加數據,點再次添加時是否判斷重復提交,那就會出現,打開一次頁面之能提交一次操作了.... 請賜教  回復  更多評論
            

          # re: java-web-struts2-2.0-防止重復提交之設置-intercept [未登錄] 2009-06-30 16:42 dd
          返回到相同的頁面后token已經重新賦值了  回復  更多評論
            

          # re: java-web-struts2-2.0-防止重復提交之設置-intercept 2010-06-15 09:29 fan
          攔截器能不能寫成全局的呢
          如果我又多個action要防止重復提交沒個都寫不是很麻煩???  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 疏附县| 正安县| 阿瓦提县| 泾源县| 当雄县| 宁武县| 嘉鱼县| 贵港市| 蓝田县| 阿拉善盟| 饶平县| 安多县| 镇安县| 伊宁县| 贵德县| 新和县| 青海省| 射洪县| 隆子县| 大埔县| 连城县| 吴桥县| 海丰县| 平阳县| 定结县| 常山县| 白河县| 五河县| 那曲县| 桐城市| 榆林市| 漳浦县| 泸西县| 商都县| 景德镇市| 汶川县| 德令哈市| 新巴尔虎左旗| 修文县| 中宁县| 玛纳斯县|