Edzy_Java

            BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
            58 隨筆 :: 12 文章 :: 11 評(píng)論 :: 0 Trackbacks
                  如果用戶回退到剛才的提交頁面并再次提交的話,客戶端傳過來的令牌就和服務(wù)器端的令牌不一致,從而有效地防止了重復(fù)提交的發(fā)生。//驗(yàn)證事務(wù)控制令牌,會(huì)自動(dòng)根據(jù)session中標(biāo)識(shí)生成一個(gè)隱含input代表令牌,防止兩次提交。

            在JSP/Servlet中可以

            JSP頁面  
          SynchroToken.java
            package com.lims.util;
            import org.apache.struts.util.*;
            import javax.servlet.http.*;
            import javax.servlet.jsp.*;
            import org.apache.struts.action.*;
            /**
            *
            Title: SynchroToken
            *
            Description:
            *
            Copyright: Copyright (c) 2004
            *
            Company: NetStar
            * @author Jstar
            * @version 1.0
            * Created in 2004/04/21
            */
            public class SynchroToken{
            public final static java.lang.String TOKEN_NAME = "_token";
            public static boolean checkToken (HttpServletRequest request){
            boolean isEqual = false;
            HttpSession session = request.getSession ();
            String formToken = request.getParameter (TOKEN_NAME);
            String sessionToken = (String)session.getAttribute (TOKEN_NAME);
            System.out.println ("formToken: " + formToken + " sessionToken: " +
            sessionToken);
            if (formToken != null && sessionToken == null){
            session.setAttribute (TOKEN_NAME, formToken);
            isEqual = true;
            }
            return isEqual;
            }
            /**
            * Insert the method's description here.
            * Creation date: (4/19/2004 3:23:25 PM)
            * @return java.lang.String
            * @param request javax.servlet.http.HttpServletRequest
            */
            public static String getToken (HttpServletRequest request){
            String token = "" + System.currentTimeMillis ();
            HttpSession session = request.getSession ();
            if (session != null){
            session.removeAttribute (TOKEN_NAME);
            }
            return token;z
            }
            /**
            * Insert the method's description here.
            * Creation date: (4/19/2004 3:24:10 PM)
            * @return java.lang.String
            */
            final static java.lang.String getTOKEN_NAME (){
            return TOKEN_NAME;
            }
            public static String message (PageContext pageContext, String key) throws
            JspException{
            return RequestUtils.message (pageContext, null, null, key);
            }
            }

          posted on 2007-12-18 09:33 lbfeng 閱讀(263) 評(píng)論(0)  編輯  收藏 所屬分類: JSP&Servlet技術(shù)
          主站蜘蛛池模板: 冀州市| 新巴尔虎左旗| 互助| 含山县| 固镇县| 宜兰县| 茂名市| 华池县| 轮台县| 安乡县| 巴中市| 永年县| 平乡县| 探索| 潜山县| 龙川县| 醴陵市| 汕头市| 闽清县| 涞水县| 建水县| 安乡县| 张家港市| 加查县| 全州县| 万全县| 东莞市| 大埔区| 公安县| 泾源县| 吉林省| 平远县| 土默特左旗| 台中市| 乌拉特后旗| 濮阳市| 陇西县| 固原市| 印江| 土默特左旗| 札达县|