Struts涓璗oken鐨勪娇鐢ㄦ柟娉?涓嶄娇鐢╤tlm:form (杞

Struts涓璗oken鐨勪娇鐢ㄦ柟娉?涓嶄娇鐢╤tlm:form (杞?
                        Token鐨勪娇鐢ㄦ柟娉?

浣跨敤Token鍙互闃叉褰撶敤鎴峰埛鏂伴〉闈㈠拰鐐瑰嚮鍚庨€€鎸夐挳鏃堕€犳垚鐨勯〉闈㈣〃鍗曢噸澶嶆彁浜ょ殑闂锛?
浣跨敤鏂规硶濡備笅锛?

銏?

棣栧厛瑕侀€氳繃涓€涓〉闈㈢敓鎴愪竴涓猅oken浠ょ墝锛岀敓鎴愪竴涓殢鏈烘暟
鍙互鍒涘缓涓€涓〉闈ain.jsp
鐒跺悗鍦ㄨ椤甸潰涓婃斁缃竴涓寜閽垨鑰呰秴杩炴帴 锛岃瓒呰繛鎺ユ寚鍚戜竴涓猘ction绫?
鍦ㄨ繖涓猘ction绫讳腑浣跨敤
     this.saveToken(request);    //鐢熸垚Token    
     Globals s;
     return mapping.findForward("success"); //璺宠浆鍒板鍔犻〉闈?

銏?

鍦?-澧炲姞椤甸潰--涓鍏ュ涓嬩袱涓猨ar鍖?
<%@ page import="org.apache.struts.taglib.html.Constants" %>
<%@ page import="org.apache.struts.Globals" %>
鐒跺悗鍦ㄩ〉闈笂娣诲姞涓€涓殣钘忓煙
<input type="hidden" name="<%=Constants.TOKEN_KEY%>"    value="<%=session.getAttribute(Globals.TRANSACTION_TOKEN_KEY)%>"/>
姝ゅ鐨刵ame value涓殑鍊奸兘鏄浐瀹氱殑锛屼笉鍏佽鏀瑰彉

銏?

鍦?--AddUserAction-----涓紝浣跨敤isTokenValid(request)楠岃瘉Token,濡傛灉浜х敓鐨凾oken浠ょ墝闅忔満鏁颁笉鍚岋紝鍒?
璺宠浆鍒伴敊璇〉闈紝濡傛灉鐩稿悓鍒欐妸session涓殑Token鍒犻櫎锛岀劧鍚庤繘琛屼笟鍔″鐞?
     if (!this.isTokenValid(request)) {
         return mapping.findForward("error");
     }
     this.resetToken(request);//鍒欒椤甸潰鍙兘鎻愪氦涓€娆?鏃犺鍒锋柊鎴栨墜鍔ㄦ彁浜?
    鎴?this.saveToken(request);  //鍒欒椤甸潰鍙互(澶氭鎵嬪姩鎻愪氦,鍒锋柊涓嶄細鎻愪氦)
      //涔嬪悗璺熶笟鍔′唬鐮?

娉ㄦ剰锛?
Hidden鐨勫悕绉板繀椤讳负Constants.TOKEN_KEY
Hidden鐨勫€煎繀椤讳负session.getAttribute(Globals.TRANSACTION_TOKEN_KEY)


鎬濊矾濡備笅:
1.鍦ㄥ墠缃產ction涓? 鍦╯ession涓繚瀛樹竴涓彉閲廇
2.鍦ㄩ〉闈?鐨剅equest涓?涔熶繚瀛樹竴涓狟 璧嬪€间负A鐨勫€?
3.绗竴娆℃彁浜ゆ椂 A equels B 鍒欏繀鐩哥瓑,姝ゆ椂  閲嶇疆A鐨勫€?骞惰烦杞嚦涓婁紶椤甸潰
4. 鍚? ,濡傛灉鎵嬪姩鎻愪氦,鏃犲奖鍝嶅彲浠ョ户缁笂浼?
5.濡傛灉鐢ㄦ埛鎵嬪姩鍒锋柊椤甸潰,鍒?姝ゆ椂涓嶄細璧伴〉闈?鐩存帴鍚庡彴鐨凙CTION (request鏄笉鍙樼殑)
  姝ゆ椂A equels B ==false  璺宠浆鑷砮rror椤甸潰鍗冲彲