ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>麻豆精品99,国产精品视频网,精品视频在线看http://www.aygfsteel.com/J2EEHOME/category/35833.htmlOne Target,One Dreamzh-cnFri, 07 Nov 2008 16:09:50 GMTFri, 07 Nov 2008 16:09:50 GMT60- JSPã€Strutsé¿å…Formé‡å¤æäº¤çš„å‡ ¿Uæ–¹æ¡?/title><link>http://www.aygfsteel.com/J2EEHOME/archive/2008/11/07/239345.html</link><dc:creator>J2EE Home工作å®?/dc:creator><author>J2EE Home工作å®?/author><pubDate>Fri, 07 Nov 2008 15:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/J2EEHOME/archive/2008/11/07/239345.html</guid><wfw:comment>http://www.aygfsteel.com/J2EEHOME/comments/239345.html</wfw:comment><comments>http://www.aygfsteel.com/J2EEHOME/archive/2008/11/07/239345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/J2EEHOME/comments/commentRss/239345.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/J2EEHOME/services/trackbacks/239345.html</trackback:ping><description><![CDATA[1.javascript åQŒè®¾¾|®ä¸€ä¸ªå˜é‡ï¼Œåªå…许æäº¤ä¸€‹Æ¡ã€‚  <br />
    <br />
  2 ˜q˜æ˜¯javascriptåQŒå°†æäº¤æŒ‰é’®æˆ–者image¾|®äØ“disable  <br />
     onsubmit="getElById('submitInput').disabled = true; return true;">   <br />
   <br />
    <br />
  3 利用strutsçš„åŒæ¥ä×o牌机制   <br />
ã€€ã€€åˆ©ç”¨åŒæ¥ä»¤ç‰ŒåQˆTokenåQ‰æœºåˆ¶æ¥è§£å†³Web应用ä¸é‡å¤æäº¤çš„问题åQŒStruts也给å‡ÞZº†ä¸€ä¸ªå‚考实现ã€?<br />
  基本原ç†åQšã€€ <br />
  æœåŠ¡å™¨ç«¯åœ¨å¤„ç†åˆ°è¾„¡š„è¯äh±‚之å‰åQŒä¼šž®†è¯·æ±‚ä¸åŒ…å«çš„ä×o牌å€ég¸Žä¿å˜åœ¨å½“å‰ç”¨æˆ·ä¼šè¯ä¸çš„ä×oç‰Œå€ÆD¿›è¡Œæ¯”较,看是å¦åŒ¹é…。在处ç†å®Œè¯¥è¯äh±‚åŽï¼Œä¸”在½{”å¤å‘é€ç»™å®¢æˆ·ç«¯ä¹‹å‰ï¼Œž®†ä¼šäº§ç”Ÿä¸€ä¸ªæ–°çš„ä×o牌,该ä×oç‰Œé™¤ä¼ ç»™å®¢æˆ·ç«¯ä»¥å¤–ï¼Œä¹Ÿä¼šž®†ç”¨æˆ·ä¼šè¯ä¸ä¿å˜çš„æ—§çš„ä×o牌进行替æ¢ã€‚è¿™æ ·å¦‚æžœç”¨æˆ·å›žé€€åˆ°åˆšæ‰çš„æäº¤™åµé¢òq¶å†‹Æ¡æäº¤çš„è¯ï¼Œå®¢æˆ·ç«¯ä¼ ˜q‡æ¥çš„ä×o牌就和æœåŠ¡å™¨ç«¯çš„ä»¤ç‰Œä¸ä¸€è‡ß_¼Œä»Žè€Œæœ‰æ•ˆåœ°é˜²æ¢äº†é‡å¤æäº¤çš„å‘生。 <font face="Times New Roman">
<p><br />
  if (isTokenValid(request, true)) {<br />
   // your code here<br />
   return mapping.findForward("success");<br />
  } else {<br />
   saveToken(request);<br />
   return mapping.findForward("submitagain");<br />
  } <br />
  Strutsæ ÒŽ®ç”¨æˆ·ä¼šè¯ID和当å‰ç³»¾lŸæ—¶é—´æ¥ç”Ÿæˆä¸€ä¸ªå”¯ä¸€åQˆå¯¹äºŽæ¯ä¸ªä¼šè¯ï¼‰ä»¤ç‰Œçš„,具体实现å¯ä»¥å‚考TokenProcessor¾cÖM¸çš„generateToken()æ–ÒŽ³•。  <br />
  1. //验è¯äº‹åŠ¡æŽ§åˆ¶ä»¤ç‰Œ,ä¼šè‡ªåŠ¨æ ¹æ®session䏿 ‡è¯†ç”Ÿæˆä¸€ä¸ªéšå«input代表令牌åQŒé˜²æ¢ä¸¤‹Æ¡æäº?br />
  2. 在actionä¸ï¼šã€€ã€€ <br />
   //   // value="6aa35341f25184fd996c4c918255c3ae"></p>
<p>   if (!isTokenValid(request))<br />
errors.add(ActionErrors.GLOBAL_ERROR,<br />
   new ActionError("error.transaction.token"));<br />
   resetToken(request); //åˆ é™¤sessionä¸çš„令牌  <br />
  3. action有这æ ïLš„一个方法生æˆä×o牌  </p>
<p>   protected String generateToken(HttpServletRequest request) ...{  <br />
   HttpSession session = request.getSession();<br />
   try ...{<br />
   byte id[] = session.getId().getBytes();<br />
   byte now[] =<br />
   new Long(System.currentTimeMillis()).toString().getBytes();<br />
   MessageDigest md = MessageDigest.getInstance("MD5");<br />
   md.update(id);<br />
   md.update(now);<br />
   return (toHex(md.digest()));<br />
   } catch (IllegalStateException e) ...{<br />
   return (null);<br />
   } catch (NoSuchAlgorithmException e) ...{<br />
   return (null);<br />
   }<br />
   }<br />
<br />
åœ¨æ›´æ–°çš„æ—¶å€™é˜²æ¢æŒ‰é’®é‡å¤ç‚¹å‡»ï¼Œä¸»è¦æ˜¯ç”¨Sessionæ¥åšåˆ¤æ–<br />
在JSP/Servletä¸å¯ä»?/p>
<p>SynchroToken.java<br />
package com.lims.util;<br />
import org.apache.struts.util.*;<br />
import javax.servlet.http.*;<br />
import javax.servlet.jsp.*;<br />
import org.apache.struts.action.*;<br />
/**<br />
*</p>
<p>Title: SynchroToken</p>
<p><br />
*<br />
Description:</p>
<p><br />
*<br />
Copyright: Copyright (c) 2004</p>
<p><br />
*<br />
Company: NetStar</p>
<p><br />
* @author Jstar<br />
* @version 1.0<br />
* Created in 2004/04/21<br />
*/<br />
public class SynchroToken{<br />
public final static java.lang.String TOKEN_NAME = "_token";<br />
public static boolean checkToken (HttpServletRequest request){<br />
boolean isEqual = false;<br />
HttpSession session = request.getSession ();<br />
String formToken = request.getParameter (TOKEN_NAME);<br />
String sessionToken = (String)session.getAttribute (TOKEN_NAME);<br />
System.out.println ("formToken: " + formToken + " sessionToken: " +<br />
sessionToken);<br />
if (formToken != null && sessionToken == null){<br />
session.setAttribute (TOKEN_NAME, formToken);<br />
isEqual = true;<br />
}<br />
return isEqual;<br />
}<br />
/**<br />
* Insert the method's description here.<br />
* Creation date: (4/19/2004 3:23:25 PM)<br />
* @return java.lang.String<br />
* @param request javax.servlet.http.HttpServletRequest<br />
*/<br />
public static String getToken (HttpServletRequest request){<br />
String token = "" + System.currentTimeMillis ();<br />
HttpSession session = request.getSession ();<br />
if (session != null){<br />
session.removeAttribute (TOKEN_NAME);<br />
}<br />
return token;z<br />
}<br />
/**<br />
* Insert the method's description here.<br />
* Creation date: (4/19/2004 3:24:10 PM)<br />
* @return java.lang.String<br />
*/<br />
final static java.lang.String getTOKEN_NAME (){<br />
return TOKEN_NAME;<br />
}<br />
public static String message (PageContext pageContext, String key) throws<br />
JspException{<br />
return RequestUtils.message (pageContext, null, null, key);<br />
}<br />
}</font></p>
<img src ="http://www.aygfsteel.com/J2EEHOME/aggbug/239345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/J2EEHOME/" target="_blank">J2EE Home工作å®?/a> 2008-11-07 23:38 <a href="http://www.aygfsteel.com/J2EEHOME/archive/2008/11/07/239345.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer>
<div class="friendship-link">
<a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a>
</div>
</footer>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
<a href="http://" target="_blank">ºÚÉ½ÏØ</a>|
<a href="http://" target="_blank">ÇìÔÆÏØ</a>|
<a href="http://" target="_blank">»Ý°²ÏØ</a>|
<a href="http://" target="_blank">ÌÚ³åÏØ</a>|
<a href="http://" target="_blank">ÕżҽçÊÐ</a>|
<a href="http://" target="_blank">ÌÒÔ´ÏØ</a>|
<a href="http://" target="_blank">ÒËÀ¼ÊÐ</a>|
<a href="http://" target="_blank">³üÖÝÊÐ</a>|
<a href="http://" target="_blank">ÌïÁÖÏØ</a>|
<a href="http://" target="_blank">Â«É½ÏØ</a>|
<a href="http://" target="_blank">ÂÌ´ºÏØ</a>|
<a href="http://" target="_blank">ÇìÑôÊÐ</a>|
<a href="http://" target="_blank">×õË®ÏØ</a>|
<a href="http://" target="_blank">¶«Ì¨ÊÐ</a>|
<a href="http://" target="_blank">ÁéÊ¯ÏØ</a>|
<a href="http://" target="_blank">ÒÊÔ´ÏØ</a>|
<a href="http://" target="_blank">Ëç·ÒºÓÊÐ</a>|
<a href="http://" target="_blank">ÄÏ´¨ÊÐ</a>|
<a href="http://" target="_blank">ÑïÖÐÊÐ</a>|
<a href="http://" target="_blank">°¢¿Ë</a>|
<a href="http://" target="_blank">Ðû»¯ÏØ</a>|
<a href="http://" target="_blank">ÂÔÑôÏØ</a>|
<a href="http://" target="_blank">Á®½ÊÐ</a>|
<a href="http://" target="_blank">¾²°²Çø</a>|
<a href="http://" target="_blank">ÔÆÁúÏØ</a>|
<a href="http://" target="_blank">²©°×ÏØ</a>|
<a href="http://" target="_blank">Æ½Â½ÏØ</a>|
<a href="http://" target="_blank">ÔªÑôÏØ</a>|
<a href="http://" target="_blank">ÁÉÄþÊ¡</a>|
<a href="http://" target="_blank">°²ÏçÏØ</a>|
<a href="http://" target="_blank">ÀË¿¨×ÓÏØ</a>|
<a href="http://" target="_blank">¿ªÆ½ÊÐ</a>|
<a href="http://" target="_blank">Çí½áÏØ</a>|
<a href="http://" target="_blank">ÒËÑôÏØ</a>|
<a href="http://" target="_blank">»ªÍ¤ÏØ</a>|
<a href="http://" target="_blank">º¼½õºóÆì</a>|
<a href="http://" target="_blank">ÑôÐÅÏØ</a>|
<a href="http://" target="_blank">ÉÏË¼ÏØ</a>|
<a href="http://" target="_blank">ÓÀ´¨ÊÐ</a>|
<a href="http://" target="_blank">²ìÓçÏØ</a>|
<a href="http://" target="_blank">ÊÖ»ú</a>|
<script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>