ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

ÔÚÉϺ£µÄÒ»³¡JavaÃæÊÔÌâµÄ´ð°¸£¬°üÀ¨AJAX, JavaScript, StrutsµÈ
2014-11-20 07:45:06 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:7160´Î
Tags£ºÉϺ£ Java ÊÔÌâ ´ð°¸ °üÀ¨ AJAX JavaScript Struts

1.ÓÃjs´´½¨Ò»¸ö¶ÔÏó


<script language=¡±java script¡±>


Function student()


{


Var name;


Var address;


}


Var stu=new Student();




2.ʲôÊÇjson ,jquery


JSON: (java script Object Notation)ÊÇÒ»ÖÖÇáÁ¿¼¶µÄÊý¾Ý½»»»¸ñʽ¡£


JSONÁ½Öֽṹ£º


Ãû³Æ/Öµ¶ÔµÄ¼¯ºÏ£¬²»Í¬µÄÓïÑÔÖУ¬Ëü±»Àí½âΪ¶ÔÏ󣬼Ǽ£¬½á¹¹£¬×ֵ䣬¹þÏ£±í£¬ÓмüÁÐ±í£¬¹ØÁªÊý×é¡£


ÖµµÄÓÐÐòÁÐ±í£¬Êý×é


jQuery:


jQueryÓÉÃÀ¹úÈËJohn Resig´´½¨ ÊÇÒ»¸öÓÅÐãµÄjava script¿ò¼Ü ʹÓû§Äܹ»·½±ãµÄ´¦ÀíHTML documents events ʵÏÖ¶¯»­Ð§¹û£¬²¢ÇÒ·½±ãµØΪÍøÕ¾ÌṩAJAX½»»¥¡£



3.ajaxµÄ¹¤×÷Ô­Àí


AjaxµÄÔ­Àí¼òµ¥À´ËµÍ¨¹ýXmlHttpRequest¶ÔÏóÀ´Ïò·þÎñÆ÷·¢Òì²½ÇëÇ󣬴ӷþÎñÆ÷»ñµÃÊý¾Ý£¬È»ºóÓÃjava scriptÀ´²Ù×÷DOM¶ø¸üÐÂÒ³Ãæ¡£


Ajax´¦Àí¹ý³ÌÖеĵÚÒ»²½ÊÇ´´½¨Ò»¸öXMLHttpRequestʵÀý¡£Ê¹ÓÃHTTP·½·¨£¨GET»òPOST£©À´´¦ÀíÇëÇ󣬲¢½«Ä¿±êURLÉèÖõ½XMLHttpRequest¶ÔÏóÉÏ¡£


µ±Äã·¢ËÍHTTPÇëÇó£¬Ä㲻ϣÍûä¯ÀÀÆ÷¹ÒÆ𲢵ȴý·þÎñÆ÷µÄÏìÓ¦£¬È¡¶ø´úÖ®µÄÊÇ£¬ÄãÏ£Íûͨ¹ýÒ³Ãæ¼ÌÐøÏìÓ¦Óû§µÄ½çÃæ½»»¥£¬²¢ÔÚ·þÎñÆ÷ÏìÓ¦ÕæÕýµ½´ïºó´¦ÀíËüÃÇ¡£ÒªÍê³ÉËü£¬Äã¿ÉÒÔÏòXMLHttpRequest×¢²áÒ»¸ö»Øµ÷º¯Êý£¬²¢Òì²½µØÅÉ·¢XMLHttpRequestÇëÇ󡣿ØÖÆȨÂíÉϾͱ»·µ»Øµ½ä¯ÀÀÆ÷£¬µ±·þÎñÆ÷ÏìÓ¦µ½´ïʱ£¬»Øµ÷º¯Êý½«»á±»µ÷Óá£


ajaxµÄÓŵã
AjaxµÄ¸øÎÒÃÇ´øÀ´µÄºÃ´¦´ó¼Ò»ù±¾É϶¼ÉîÓÐÌå»á£¬ÔÚÕâÀïÎÒÖ»¼òµ¥µÄ½²¼¸µã£º
1¡¢×î´óµÄÒ»µãÊÇÒ³ÃæÎÞˢУ¬ÔÚÒ³ÃæÄÚÓë·þÎñÆ÷ͨÐÅ£¬¸øÓû§µÄÌåÑé·Ç³£ºÃ¡£
2¡¢Ê¹ÓÃÒì²½·½Ê½Óë·þÎñÆ÷ͨÐÅ£¬²»ÐèÒª´ò¶ÏÓû§µÄ²Ù×÷£¬¾ßÓиü¼ÓѸËÙµÄÏìÓ¦ÄÜÁ¦¡£


3¡¢¿ÉÒÔ°ÑÒÔǰһЩ·þÎñÆ÷¸ºµ£µÄ¹¤×÷ת¼Þµ½¿Í»§¶Ë£¬ÀûÓÿͻ§¶ËÏÐÖõÄÄÜÁ¦À´´¦Àí£¬¼õÇá·þÎñÆ÷ºÍ´ø¿íµÄ¸ºµ££¬½ÚÔ¼¿Õ¼äºÍ¿í´ø×âÓóɱ¾¡£²¢ÇÒ¼õÇá·þÎñÆ÷µÄ¸ºµ££¬ajaxµÄÔ­ÔòÊÇ¡°°´ÐèÈ¡Êý¾Ý¡±£¬¿ÉÒÔ×î´ó³Ì¶ÈµÄ¼õÉÙÈßÓàÇëÇ󣬺ÍÏìÓ¦¶Ô·þÎñÆ÷Ôì³ÉµÄ¸ºµ£¡£
4¡¢»ùÓÚ±ê×¼»¯µÄ²¢±»¹ã·ºÖ§³ÖµÄ¼¼Êõ£¬²»ÐèÒªÏÂÔزå¼þ»òÕßС³ÌÐò¡£


ajaxµÄȱµã


ÏÂÃæÎÒ×ÅÖؽ²Ò»½²ajaxµÄȱÏÝ£¬ÒòΪƽʱÎÒÃÇ´ó¶à×¢ÒâµÄ¶¼ÊÇajax¸øÎÒÃÇËù´øÀ´µÄºÃ´¦ÖîÈçÓû§ÌåÑéµÄÌáÉý¡£¶ø¶ÔajaxËù´øÀ´µÄȱÏÝÓÐËùºöÊÓ¡£


ÏÂÃæËù²ûÊöµÄajaxµÄȱÏݶ¼ÊÇËüÏÈÌìËù²úÉúµÄ¡£


1¡¢ajax¸ÉµôÁËback°´Å¥£¬¼´¶Ôä¯ÀÀÆ÷ºóÍË»úÖƵÄÆÆ»µ¡£ºóÍË°´Å¥ÊÇÒ»¸ö±ê×¼µÄwebÕ¾µãµÄÖØÒª¹¦ÄÜ£¬µ«ÊÇËüû·¨ºÍjs½øÐкܺõĺÏ×÷¡£ÕâÊÇajaxËù´øÀ´µÄÒ»¸ö±È½ÏÑÏÖصÄÎÊÌ⣬ÒòΪÓû§ÍùÍùÊÇÏ£ÍûÄܹ»Í¨¹ýºóÍËÀ´È¡ÏûÇ°Ò»´Î²Ù×÷µÄ¡£ÄÇô¶ÔÓÚÕâ¸öÎÊÌâÓÐûÓа취£¿´ð°¸Êǿ϶¨µÄ£¬ÓùýGmailµÄÖªµÀ£¬GmailÏÂÃæ²ÉÓõÄajax¼¼Êõ½â¾öÁËÕâ¸öÎÊÌ⣬ÔÚGmailÏÂÃæÊÇ¿ÉÒÔºóÍ˵ģ¬µ«ÊÇ£¬ËüÒ²²¢²»ÄܸıäajaxµÄ»úÖÆ£¬ËüÖ»ÊDzÉÓõÄÒ»¸ö±È½Ï±¿µ«ÊÇÓÐЧµÄ°ì·¨£¬¼´Óû§µ¥»÷ºóÍË°´Å¥·ÃÎÊÀúÊ·¼Ç¼ʱ£¬Í¨¹ý´´½¨»òʹÓÃÒ»¸öÒþ²ØµÄIFRAMEÀ´ÖØÏÖÒ³ÃæÉϵıä¸ü¡££¨ÀýÈ磬µ±Óû§ÔÚGoogle MapsÖе¥»÷ºóÍËʱ£¬ËüÔÚÒ»¸öÒþ²ØµÄIFRAMEÖнøÐÐËÑË÷£¬È»ºó½«ËÑË÷½á¹û·´Ó³µ½AjaxÔªËØÉÏ£¬ÒԱ㽫ӦÓóÌÐò״̬»Ö¸´µ½µ±Ê±µÄ״̬¡££©


µ«ÊÇ£¬ËäȻ˵Õâ¸öÎÊÌâÊÇ¿ÉÒÔ½â¾öµÄ£¬µ«ÊÇËüËù´øÀ´µÄ¿ª·¢³É±¾ÊǷdz£¸ßµÄ£¬ºÍajax¿ò¼ÜËùÒªÇóµÄ¿ìËÙ¿ª·¢ÊÇÏà±³ÀëµÄ¡£ÕâÊÇajaxËù´øÀ´µÄÒ»¸ö·Ç³£ÑÏÖصÄÎÊÌâ¡£


2¡¢°²È«ÎÊÌâ


¼¼ÊõͬʱҲ¶ÔITÆóÒµ´øÀ´ÁËÐµİ²È«Íþв£¬ajax¼¼Êõ¾ÍÈçͬ¶ÔÆóÒµÊý¾Ý½¨Á¢ÁËÒ»¸öÖ±½ÓͨµÀ¡£ÕâʹµÃ¿ª·¢ÕßÔÚ²»¾­Òâ¼ä»á±©Â¶±ÈÒÔÇ°¸ü¶àµÄÊý¾ÝºÍ·þÎñÆ÷Âß¼­¡£ajaxµÄÂß¼­¿ÉÒÔ¶Ô¿Í»§¶ËµÄ°²È«É¨Ãè¼¼ÊõÒþ²ØÆðÀ´£¬ÔÊÐíºÚ¿Í´ÓÔ¶¶Ë·þÎñÆ÷ÉϽ¨Á¢ÐµĹ¥»÷¡£»¹ÓÐajaxÒ²ÄÑÒÔ±ÜÃâһЩÒÑÖªµÄ°²È«Èõµã£¬ÖîÈç¿çÕ¾µã½Å²½¹¥»÷¡¢SQL×¢Èë¹¥»÷ºÍ»ùÓÚcredentialsµÄ°²È«Â©¶´µÈ¡£


3¡¢¶ÔËÑË÷ÒýÇæµÄÖ§³Ö±È½ÏÈõ¡£


4¡¢ÆÆ»µÁ˳ÌÐòµÄÒì³£»úÖÆ¡£ÖÁÉÙ´ÓÄ¿Ç°¿´À´£¬Ïñajax.dll£¬ajaxpro.dllÕâЩajax¿ò¼ÜÊÇ»áÆÆ»µ³ÌÐòµÄÒì³£»úÖƵġ£¹ØÓÚÕâ¸öÎÊÌ⣬ÎÒÔø¾­ÔÚ¿ª·¢¹ý³ÌÖÐÓöµ½¹ý£¬µ«ÊDzéÁËÒ»ÏÂÍøÉϼ¸ºõûÓÐÏà¹ØµÄ½éÉÜ¡£ºóÀ´ÎÒ×Ô¼º×öÁËÒ»´ÎÊÔÑ飬·Ö±ð²ÉÓÃajaxºÍ´«Í³µÄformÌá½»µÄģʽÀ´É¾³ýÒ»ÌõÊý¾Ý¡­¡­¸øÎÒÃǵĵ÷ÊÔ´øÀ´Á˺ܴóµÄÀ§ÄÑ¡£


5¡¢ÁíÍ⣬ÏñÆäËû·½ÃæµÄһЩÎÊÌ⣬±ÈÈç˵Υ±³ÁËurlºÍ×ÊÔ´¶¨Î»µÄ³õÖÔ¡£ÀýÈ磬ÎÒ¸øÄãÒ»¸öurlµØÖ·£¬Èç¹û²ÉÓÃÁËajax¼¼Êõ£¬Ò²ÐíÄãÔÚ¸ÃurlµØÖ·ÏÂÃæ¿´µ½µÄºÍÎÒÔÚÕâ¸öurlµØÖ·Ï¿´µ½µÄÄÚÈÝÊDz»Í¬µÄ¡£Õâ¸öºÍ×ÊÔ´¶¨Î»µÄ³õÖÔÊÇÏà±³ÀëµÄ¡£


6¡¢Ò»Ð©ÊÖ³ÖÉ豸£¨ÈçÊÖ»ú¡¢PDAµÈ£©ÏÖÔÚ»¹²»ÄܺܺõÄÖ§³Öajax£¬±ÈÈç˵ÎÒÃÇÔÚÊÖ»úµÄä¯ÀÀÆ÷ÉÏ´ò¿ª²ÉÓÃajax¼¼ÊõµÄÍøվʱ£¬ËüÄ¿Ç°ÊDz»Ö§³ÖµÄ£¬µ±È»£¬Õâ¸öÎÊÌâºÍÎÒÃÇû̫¶à¹Øϵ¡£


4 java script DOM ¶ÔÏó½á¹¹Í¼


window
-navigator
-plugins[]
-mime types[]
-frames[]
-location
-history
-window objects(self,parent,etc)
-document
-forms[]
-elements[]
-images[]
-embeds[]
-links[]
-anchors[]
-applets[]






5 StrutsµÄÁ÷³Ìͼ





6¶¯Ì¬²Ù×÷±í¸ñ







ÎÒÊDZí¸ñ,Äã¿´µ½ÎÒÁËô





<script>
function san(dj,cj){
if(dj==0)tabs.insertRow(cj).insertCell().innerText=¡¯±í´ïÎÒµÄÒâ˼ÁË·ñ¡¯
else tabs.deleteRow(cj)
}


7 ̸̸HTTPЭÒé,doGetºÍdoPostµÄÇø±ð£¿


HTTP£¨HyperTextTransferProtocol£©Êdz¬Îı¾´«ÊäЭÒéµÄËõд£¬ËüÓÃÓÚ´«ËÍWWW·½Ê½µÄÊý¾Ý£¬HTTPЭÒé²ÉÓÃÁËÇëÇó/ÏìӦģÐÍ¡£¿Í»§¶ËÏò·þÎñÆ÷·¢ËÍÒ»¸öÇëÇó£¬ÇëÇóÍ·°üº¬ÇëÇóµÄ·½·¨¡¢URI¡¢Ð­Òé°æ±¾¡¢ÒÔ¼°°üº¬ÇëÇóÐÞÊηû¡¢¿Í»§ÐÅÏ¢ºÍÄÚÈݵÄÀàËÆÓÚMIMEµÄÏûÏ¢½á¹¹¡£·þÎñÆ÷ÒÔÒ»¸ö״̬ÐÐ×÷ΪÏìÓ¦£¬ÏàÓ¦µÄÄÚÈÝ°üÀ¨ÏûϢЭÒéµÄ°æ±¾£¬³É¹¦»òÕß´íÎó±àÂë¼ÓÉÏ°üº¬·þÎñÆ÷ÐÅÏ¢¡¢ÊµÌåÔªÐÅÏ¢ÒÔ¼°¿ÉÄܵÄʵÌåÄÚÈÝ¡£


ͨ³£HTTPÏûÏ¢°üÀ¨¿Í»§»úÏò·þÎñÆ÷µÄÇëÇóÏûÏ¢ºÍ·þÎñÆ÷Ïò¿Í»§»úµÄÏìÓ¦ÏûÏ¢¡£ÕâÁ½ÖÖÀàÐ͵ÄÏûÏ¢ÓÉÒ»¸öÆðʼÐУ¬Ò»¸ö»òÕ߶à¸öÍ·Óò£¬Ò»¸öÖ»ÊÇÍ·Óò½áÊøµÄ¿ÕÐкͿÉÑ¡µÄÏûÏ¢Ìå×é³É¡£HTTPµÄÍ·Óò°üÀ¨Í¨ÓÃÍ·£¬ÇëÇóÍ·£¬ÏìӦͷºÍʵÌåÍ·Ëĸö²¿·Ö¡£Ã¿¸öÍ·ÓòÓÉÒ»¸öÓòÃû£¬Ã°ºÅ£¨:£©ºÍÓòÖµÈý²¿·Ö×é³É¡£ÓòÃûÊÇ´óСдÎ޹صģ¬Óòֵǰ¿ÉÒÔÌí¼ÓÈκÎÊýÁ¿µÄ¿Õ¸ñ·û£¬Í·Óò¿ÉÒÔ±»À©Õ¹Îª¶àÐУ¬ÔÚÿÐпªÊ¼´¦£¬Ê¹ÓÃÖÁÉÙÒ»¸ö¿Õ¸ñ»òÖƱí·û¡£


ͨÓÃÍ·Óò


ͨÓÃÍ·Óò°üº¬ÇëÇóºÍÏìÓ¦ÏûÏ¢¶¼Ö§³ÖµÄÍ·Óò£¬Í¨ÓÃÍ·Óò°üº¬Cache-Control¡¢Connection¡¢Date¡¢Pragma¡¢Transfer-Encoding¡¢Upgrade¡¢Via¡£¶ÔͨÓÃÍ·ÓòµÄÀ©Õ¹ÒªÇóͨѶ˫·½¶¼Ö§³Ö´ËÀ©Õ¹£¬Èç¹û´æÔÚ²»Ö§³ÖµÄͨÓÃÍ·Óò£¬Ò»°ã½«»á×÷ΪʵÌåÍ·Óò´¦Àí¡£ÏÂÃæ¼òµ¥½éÉܼ¸¸öÔÚUPnPÏûÏ¢ÖÐʹÓõÄͨÓÃÍ·Óò¡£


Cache-ControlÍ·Óò


Cache-ControlÖ¸¶¨ÇëÇóºÍÏìÓ¦×ñÑ­µÄ»º´æ»úÖÆ¡£ÔÚÇëÇóÏûÏ¢»òÏìÓ¦ÏûÏ¢ÖÐÉèÖÃCache-Control²¢²»»áÐÞ¸ÄÁíÒ»¸öÏûÏ¢´¦Àí¹ý³ÌÖеĻº´æ´¦Àí¹ý³Ì¡£ÇëÇóʱµÄ»º´æÖ¸Áî°üÀ¨no-cache¡¢no-store¡¢max-age¡¢max-stale¡¢min-fresh¡¢only-if-cached£¬ÏìÓ¦ÏûÏ¢ÖеÄÖ¸Áî°üÀ¨public¡¢private¡¢no-cache¡¢no-store¡¢no-transform¡¢must-reva lidate¡¢proxy-reva lidate¡¢max-age¡£¸÷¸öÏûÏ¢ÖеÄÖ¸ÁÒåÈçÏ£º


PublicָʾÏìÓ¦¿É±»Èκλº´æÇø»º´æ¡£
Privateָʾ¶ÔÓÚµ¥¸öÓû§µÄÕû¸ö»ò²¿·ÖÏìÓ¦ÏûÏ¢£¬²»Äܱ»¹²Ïí»º´æ´¦Àí¡£ÕâÔÊÐí·þÎñÆ÷½ö½öÃèÊöµ±Óû§µÄ²¿·ÖÏìÓ¦ÏûÏ¢£¬´ËÏìÓ¦ÏûÏ¢¶ÔÓÚÆäËûÓû§µÄÇëÇóÎÞЧ¡£
no-cacheָʾÇëÇó»òÏìÓ¦ÏûÏ¢²»ÄÜ»º´æ
no-storeÓÃÓÚ·ÀÖ¹ÖØÒªµÄÐÅÏ¢±»ÎÞÒâµÄ·¢²¼¡£ÔÚÇëÇóÏûÏ¢Öз¢Ëͽ«Ê¹µÃÇëÇóºÍÏìÓ¦ÏûÏ¢¶¼²»Ê¹Óûº´æ¡£
max-ageָʾ¿Í»§»ú¿ÉÒÔ½ÓÊÕÉú´æÆÚ²»´óÓÚÖ¸¶¨Ê±¼ä£¨ÒÔÃëΪµ¥Î»£©µÄÏìÓ¦¡£
min-freshָʾ¿Í»§»ú¿ÉÒÔ½ÓÊÕÏìӦʱ¼äСÓÚµ±Ç°Ê±¼ä¼ÓÉÏÖ¸¶¨Ê±¼äµÄÏìÓ¦¡£
max-staleָʾ¿Í»§»ú¿ÉÒÔ½ÓÊÕ³¬³ö³¬Ê±ÆÚ¼äµÄÏìÓ¦ÏûÏ¢¡£Èç¹ûÖ¸¶¨max-staleÏûÏ¢µÄÖµ£¬ÄÇô¿Í»§»ú¿ÉÒÔ½ÓÊÕ³¬³ö³¬Ê±ÆÚÖ¸¶¨ÖµÖ®ÄÚµÄÏìÓ¦ÏûÏ¢¡£


DateÍ·Óò


DateÍ·Óò±íʾÏûÏ¢·¢Ë͵Äʱ¼ä£¬Ê±¼äµÄÃèÊö¸ñʽÓÉrfc822¶¨Òå¡£ÀýÈ磬Date:Mon,31Dec200104:25:57GMT¡£DateÃèÊöµÄʱ¼ä±íʾÊÀ½ç±ê׼ʱ£¬»»Ëã³É±¾µØʱ¼ä£¬ÐèÒªÖªµÀÓû§ËùÔÚµÄʱÇø¡£


PragmaÍ·Óò


PragmaÍ·ÓòÓÃÀ´°üº¬ÊµÏÖÌض¨µÄÖ¸Á×î³£ÓõÄÊÇPragma:no-cache¡£ÔÚHTTP/1.1ЭÒéÖУ¬ËüµÄº¬ÒåºÍCache-Control:no-cacheÏàͬ¡£


ÇëÇóÏûÏ¢


ÇëÇóÏûÏ¢µÄµÚÒ»ÐÐΪÏÂÃæµÄ¸ñʽ£º
MethodSPRequest-URISPHTTP-VersionCRLFMethod±íʾ¶ÔÓÚRequest-URIÍê³ÉµÄ·½·¨£¬Õâ¸ö×Ö¶ÎÊÇ´óСдÃô¸ÐµÄ£¬°üÀ¨OPTIONS¡¢GET¡¢HEAD¡¢POST¡¢PUT¡¢DELETE¡¢TRACE¡£·½·¨GETºÍHEADÓ¦¸Ã±»ËùÓеÄͨÓÃWEB·þÎñÆ÷Ö§³Ö£¬ÆäËûËùÓз½·¨µÄʵÏÖÊÇ¿ÉÑ¡µÄ¡£GET·½·¨È¡»ØÓÉRequest-URI±êʶµÄÐÅÏ¢¡£HEAD·½·¨Ò²ÊÇÈ¡»ØÓÉRequest-URI±êʶµÄÐÅÏ¢£¬Ö»ÊÇ¿ÉÒÔÔÚÏìӦʱ£¬²»·µ»ØÏûÏ¢Ìå¡£POST·½·¨¿ÉÒÔÇëÇó·þÎñÆ÷½ÓÊÕ°üº¬ÔÚÇëÇóÖеÄʵÌåÐÅÏ¢£¬¿ÉÒÔÓÃÓÚÌá½»±íµ¥£¬ÏòÐÂÎÅ×é¡¢BBS¡¢ÓʼþȺ×éºÍÊý¾Ý¿â·¢ËÍÏûÏ¢¡£


SP±íʾ¿Õ¸ñ¡£Request-URI×ñÑ­URI¸ñʽ£¬ÔÚ´Ë×Ö¶ÎΪÐǺţ¨*£©Ê±£¬ËµÃ÷ÇëÇó²¢²»ÓÃÓÚij¸öÌض¨µÄ×ÊÔ´µØÖ·£¬¶øÊÇÓÃÓÚ·þÎñÆ÷±¾Éí¡£HTTP-Version±íʾ֧³ÖµÄHTTP°æ±¾£¬ÀýÈçΪHTTP/1.1¡£CRLF±íʾ»»Ðлسµ·û¡£ÇëÇóÍ·ÓòÔÊÐí¿Í»§¶ËÏò·þÎñÆ÷´«µÝ¹ØÓÚÇëÇó»òÕß¹ØÓÚ¿Í»§»úµÄ¸½¼ÓÐÅÏ¢¡£ÇëÇóÍ·Óò¿ÉÄÜ°üº¬ÏÂÁÐ×Ö¶ÎAccept¡¢Accept-Charset¡¢Accept-Encoding¡¢Accept-Language¡¢Authorization¡¢From¡¢Host¡¢If-Modified-Since¡¢If-Match¡¢If-None-Match¡¢If-Range¡¢If-Range¡¢If-Unmodified-Since¡¢Max-Forwards¡¢Proxy-Authorization¡¢Range¡¢Referer¡¢User-Agent¡£¶ÔÇëÇóÍ·ÓòµÄÀ©Õ¹ÒªÇóͨѶ˫·½¶¼Ö§³Ö£¬Èç¹û´æÔÚ²»Ö§³ÖµÄÇëÇóÍ·Óò£¬Ò»°ã½«»á×÷ΪʵÌåÍ·Óò´¦Àí¡£


µäÐ͵ÄÇëÇóÏûÏ¢£º


GEThttp://download.microtool.de:80/somedata.exe
Host:download.microtool.de
Accept:*/*
Pragma:no-cache
Cache-Control:no-cache
Referer:http://download.microtool.de/
User-Agent:Mozilla/4.04[en](Win95;I;Nav)
Range:bytes=554554-


ÉÏÀýµÚÒ»ÐбíʾHTTP¿Í»§¶Ë£¨¿ÉÄÜÊÇä¯ÀÀÆ÷¡¢ÏÂÔسÌÐò£©Í¨¹ýGET·½·¨»ñµÃÖ¸¶¨URLϵÄÎļþ¡£×ØÉ«µÄ²¿·Ö±íʾÇëÇóÍ·ÓòµÄÐÅÏ¢£¬ÂÌÉ«µÄ²¿·Ö±íʾͨÓÃÍ·²¿·Ö¡£


HostÍ·Óò


HostÍ·ÓòÖ¸¶¨ÇëÇó×ÊÔ´µÄIntenetÖ÷»úºÍ¶Ë¿ÚºÅ£¬±ØÐë±íʾÇëÇóurlµÄԭʼ·þÎñÆ÷»òÍø¹ØµÄλÖá£HTTP/1.1ÇëÇó±ØÐë°üº¬Ö÷»úÍ·Óò£¬·ñÔòϵͳ»áÒÔ400״̬Âë·µ»Ø¡£


RefererÍ·Óò


RefererÍ·ÓòÔÊÐí¿Í»§¶ËÖ¸¶¨ÇëÇóuriµÄÔ´×ÊÔ´µØÖ·£¬Õâ¿ÉÒÔÔÊÐí·þÎñÆ÷Éú³É»ØÍËÁ´±í£¬¿ÉÓÃÀ´µÇ½¡¢ÓÅ»¯cacheµÈ¡£ËûÒ²ÔÊÐí·Ï³ýµÄ»ò´íÎóµÄÁ¬½ÓÓÉÓÚά»¤µÄÄ¿µÄ±»×·×Ù¡£Èç¹ûÇëÇóµÄuriûÓÐ×Ô¼ºµÄuriµØÖ·£¬Referer²»Äܱ»·¢ËÍ¡£Èç¹ûÖ¸¶¨µÄÊDz¿·ÖuriµØÖ·£¬Ôò´ËµØÖ·Ó¦¸ÃÊÇÒ»¸öÏà¶ÔµØÖ·¡£


RangeÍ·Óò


RangeÍ·Óò¿ÉÒÔÇëÇóʵÌåµÄÒ»¸ö»òÕ߶à¸ö×Ó·¶Î§¡£ÀýÈ磬


±íʾͷ500¸ö×Ö½Ú£ºbytes=0-499
±íʾµÚ¶þ¸ö500×Ö½Ú£ºbytes=500-999
±íʾ×îºó500¸ö×Ö½Ú£ºbytes=-500
±íʾ500×Ö½ÚÒÔºóµÄ·¶Î§£ºbytes=500-
µÚÒ»¸öºÍ×îºóÒ»¸ö×Ö½Ú£ºbytes=0-0,-1
ͬʱָ¶¨¼¸¸ö·¶Î§£ºbytes=500-600,601-999


µ«ÊÇ·þÎñÆ÷¿ÉÒÔºöÂÔ´ËÇëÇóÍ·£¬Èç¹ûÎÞÌõ¼þGET°üº¬RangeÇëÇóÍ·£¬ÏìÓ¦»áÒÔ״̬Âë206£¨PartialContent£©·µ»Ø¶ø²»ÊÇÒÔ200£¨OK£©¡£


User-AgentÍ·Óò


User-AgentÍ·ÓòµÄÄÚÈÝ°üº¬·¢³öÇëÇóµÄÓû§ÐÅÏ¢¡£


ÏìÓ¦ÏûÏ¢


ÏìÓ¦ÏûÏ¢µÄµÚÒ»ÐÐΪÏÂÃæµÄ¸ñʽ£º


HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF
HTTP-Version±íʾ֧³ÖµÄHTTP°æ±¾£¬ÀýÈçΪHTTP/1.1¡£Status-CodeÊÇÒ»¸öÈý¸öÊý×ֵĽá¹û´úÂë¡£Reason-Phrase¸øStatus-CodeÌṩһ¸ö¼òµ¥µÄÎı¾ÃèÊö¡£Status-CodeÖ÷ÒªÓÃÓÚ»úÆ÷×Ô¶¯Ê¶±ð£¬Reason-PhraseÖ÷ÒªÓÃÓÚ°ïÖúÓû§Àí½â¡£Status-CodeµÄµÚÒ»¸öÊý×Ö¶¨ÒåÏìÓ¦µÄÀà±ð£¬ºóÁ½¸öÊý×ÖûÓзÖÀàµÄ×÷ÓᣵÚÒ»¸öÊý×Ö¿ÉÄÜÈ¡5¸ö²»Í¬µÄÖµ£º


1xx:ÐÅÏ¢ÏìÓ¦À࣬±íʾ½ÓÊÕµ½ÇëÇó²¢ÇÒ¼ÌÐø´¦Àí
2xx:´¦Àí³É¹¦ÏìÓ¦À࣬±íʾ¶¯×÷±»³É¹¦½ÓÊÕ¡¢Àí½âºÍ½ÓÊÜ
3xx:Öض¨ÏòÏìÓ¦À࣬ΪÁËÍê³ÉÖ¸¶¨µÄ¶¯×÷£¬±ØÐë½ÓÊܽøÒ»²½´¦Àí
4xx:¿Í»§¶Ë´íÎ󣬿ͻ§ÇëÇó°üº¬Óï·¨´íÎó»òÕßÊDz»ÄÜÕýÈ·Ö´ÐÐ
5xx:·þÎñ¶Ë´íÎ󣬷þÎñÆ÷²»ÄÜÕýÈ·Ö´ÐÐÒ»¸öÕýÈ·µÄÇëÇó


ÏìӦͷÓòÔÊÐí·þÎñÆ÷´«µÝ²»ÄÜ·ÅÔÚ״̬Ðеĸ½¼ÓÐÅÏ¢£¬ÕâЩÓòÖ÷ÒªÃèÊö·þÎñÆ÷µÄÐÅÏ¢ºÍRequest-URI½øÒ»²½µÄÐÅÏ¢¡£ÏìӦͷÓò°üº¬Age¡¢Location¡¢Proxy-Authenticate¡¢Public¡¢Retry-After¡¢Server¡¢Vary¡¢Warning¡¢WWW-Authenticate¡£¶ÔÏìӦͷÓòµÄÀ©Õ¹ÒªÇóͨѶ˫·½¶¼Ö§³Ö£¬Èç¹û´æÔÚ²»Ö§³ÖµÄÏìӦͷÓò£¬Ò»°ã½«»á×÷ΪʵÌåÍ·Óò´¦Àí¡£


µäÐ͵ÄÏìÓ¦ÏûÏ¢£º


HTTP/1.0200OK
Date:Mon,31Dec200104:25:57GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html
Last-modified:Tue,17Apr200106:46:28GMT
Etag:¡±a030f020ac7c01:1e9f¡±
Content-length:39725426
Content-range:bytes554554-40279979/40279980
ÉÏÀýµÚÒ»ÐбíʾHTTP·þÎñ¶ËÏìÓ¦Ò»¸öGET·½·¨¡£×ØÉ«µÄ²¿·Ö±íʾÏìӦͷÓòµÄÐÅÏ¢£¬ÂÌÉ«µÄ²¿·Ö±íʾͨÓÃÍ·²¿·Ö£¬ºìÉ«µÄ²¿·Ö±íʾʵÌåÍ·ÓòµÄÐÅÏ¢¡£


LocationÏìӦͷ


LocationÏìӦͷÓÃÓÚÖض¨Ïò½ÓÊÕÕßµ½Ò»¸öÐÂURIµØÖ·¡£


ServerÏìӦͷ


ServerÏìӦͷ°üº¬´¦ÀíÇëÇóµÄԭʼ·þÎñÆ÷µÄÈí¼þÐÅÏ¢¡£´ËÓòÄÜ°üº¬¶à¸ö²úÆ·±êʶºÍ×¢ÊÍ£¬²úÆ·±êʶһ°ã°´ÕÕÖØÒªÐÔÅÅÐò¡£


ʵÌå


ÇëÇóÏûÏ¢ºÍÏìÓ¦ÏûÏ¢¶¼¿ÉÒÔ°üº¬ÊµÌåÐÅÏ¢£¬ÊµÌåÐÅÏ¢Ò»°ãÓÉʵÌåÍ·ÓòºÍʵÌå×é³É¡£ÊµÌåÍ·Óò°üº¬¹ØÓÚʵÌåµÄÔ­ÐÅÏ¢£¬ÊµÌåÍ·°üÀ¨Allow¡¢Content-Base¡¢Content-Encoding¡¢Content-Language¡¢Content-Length¡¢Content-Location¡¢Content-MD5¡¢Content-Range¡¢Content-Type¡¢Etag¡¢Expires¡¢Last-Modified¡¢extension-header¡£extension-headerÔÊÐí¿Í»§¶Ë¶¨ÒåеÄʵÌåÍ·£¬µ«ÊÇÕâЩÓò¿ÉÄÜÎÞ·¨Î´½ÓÊÜ·½Ê¶±ð¡£ÊµÌå¿ÉÒÔÊÇÒ»¸ö¾­¹ý±àÂëµÄ×Ö½ÚÁ÷£¬ËüµÄ±àÂ뷽ʽÓÉContent-Encoding»òContent-Type¶¨Ò壬ËüµÄ³¤¶ÈÓÉContent-Length»òContent-Range¶¨Òå¡£


Content-TypeʵÌåÍ·


Content-TypeʵÌåÍ·ÓÃÓÚÏò½ÓÊÕ·½Ö¸Ê¾ÊµÌåµÄ½éÖÊÀàÐÍ£¬Ö¸¶¨HEAD·½·¨Ë͵½½ÓÊÕ·½µÄʵÌå½éÖÊÀàÐÍ£¬»òGET·½·¨·¢Ë͵ÄÇëÇó½éÖÊÀàÐÍContent-RangeʵÌåÍ·


Content-RangeʵÌåÍ·ÓÃÓÚÖ¸¶¨Õû¸öʵÌåÖеÄÒ»²¿·ÖµÄ²åÈëλÖã¬ËûҲָʾÁËÕû¸öʵÌåµÄ³¤¶È¡£ÔÚ·þÎñÆ÷Ïò¿Í»§·µ»ØÒ»¸ö²¿·ÖÏìÓ¦£¬Ëü±ØÐëÃèÊöÏìÓ¦¸²¸ÇµÄ·¶Î§ºÍÕû¸öʵÌ峤¶È¡£Ò»°ã¸ñʽ£º


Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth
ÀýÈ磬´«ËÍÍ·500¸ö×Ö½Ú´Î×ֶεÄÐÎʽ£ºContent-Range:bytes0-499/1234Èç¹ûÒ»¸öhttpÏûÏ¢°üº¬´Ë½Ú£¨ÀýÈ磬¶Ô·¶Î§ÇëÇóµÄÏìÓ¦»ò¶ÔһϵÁз¶Î§µÄÖصþÇëÇ󣩣¬Content-Range±íʾ´«Ë͵ķ¶Î§£¬Content-Length±íʾʵ¼Ê´«Ë͵Ä×Ö½ÚÊý¡£


Last-modifiedʵÌåÍ·


Last-modifiedʵÌåÍ·Ö¸¶¨·þÎñÆ÷Éϱ£´æÄÚÈݵÄ×îºóÐÞ¶©Ê±¼ä¡£


DogetºÍdopostµÄÇø±ð£º


getÖ»ÓÐÒ»¸öÁ÷£¬²ÎÊý¸½¼ÓÔÚurlºó£¬µØÖ·ÐÐÏÔʾҪ´«Ë͵ÄÐÅÏ¢£¬´óС¸öÊýÓÐÑϸñÏÞÖÆÇÒÖ»ÄÜÊÇ×Ö·û´®¡£
postµÄ²ÎÊýÊÇͨ¹ýÁíÍâµÄÁ÷´«µÝµÄ£¬ ²»Í¨¹ýurl£¬ËùÒÔ¿ÉÒԺܴó£¬Ò²¿ÉÒÔ´«µÝ¶þ½øÖÆÊý¾Ý£¬ÈçÎļþµÄÉÏ´«¡£


1¡¢°²È«


GETµ÷ÓÃÔÚURLÀïÏÔʾÕý´«Ë͸øSERVLETµÄÊý¾Ý£¬ÕâÔÚϵͳµÄ°²È«·½Ãæ¿ÉÄÜ´øÀ´ÎÊÌ⣬ÀýÈçÓû§ÃûºÍÃÜÂëµÈ


POST¾Í¿ÉÒÔÔÚÒ»¶¨³Ì¶ÈÉϽâ¾ö´ËÀàÎÊÌâ


2¡¢·þÎñÆ÷½ÓÊÕ·½Ê½


·þÎñÆ÷Ëæ»ú½ÓÊÜGET·½·¨µÄÊý¾Ý£¬Ò»µ©¶ÏµçµÈÔ­Òò£¬·þÎñÆ÷Ò²²»ÖªµÀÐÅÏ¢ÊÇ·ñ·¢ËÍÍê±Ï


¶øPOST·½·¨£¬·þÎñÆ÷ÏȽÓÊÜÊý¾ÝÐÅÏ¢µÄ³¤¶È£¬È»ºóÔÙ½ÓÊÜÊý¾Ý


3¡¢formÔËÐз½Ê½


µ±form¿òÀïÃæµÄmethodΪgetʱ£¬Ö´ÐÐdoGet·½·¨
µ±form¿òÀïÃæµÄmethodΪpostʱ£¬Ö´ÐÐdoPost·½·¨


4¡¢ÈÝÁ¿ÏÞÖÆ


GET·½·¨ºóÃæµÄÐÅÏ¢Á¿×Ö½Ú´óС²»Òª³¬¹ý1.3K£¬¶øPostÔòûÓÐÏÞÖÆ


###########×îºó˵Ã÷µÄÊÇ£º


Äã¿ÉÒÔÓÃservice()À´ÊµÏÖ£¬Ëü°üº¬ÁËdogetºÍdopost £»service·½·¨ÊǽӿÚÖеķ½·¨£¬servletÈÝÆ÷°ÑËùÓÐÇëÇó·¢Ë͵½¸Ã·½·¨£¬¸Ã·½·¨Ä¬ÈÏÐÐΪÊÇת·¢httpÇëÇóµ½doXXX·½·¨ÖУ¬Èç¹ûÄãÖØÔØÁ˸÷½·¨£¬Ä¬ÈϲÙ×÷±»¸²¸Ç£¬²»ÔÙ½øÐÐת·¢²Ù×÷£¡


service()ÊÇÔÚjavax.servlet.Servlet½Ó¿ÚÖж¨ÒåµÄ, ÔÚ javax.servlet.GenericServlet
ÖÐʵÏÖÁËÕâ¸ö½Ó¿Ú, ¶ø doGet/doPost ÔòÊÇÔÚ javax.servlet.http.HttpServlet ÖÐʵÏÖµÄ, javax.servlet.http.HttpServlet ÊÇ javax.servlet.GenericServlet µÄ×ÓÀà.


ËùÓпÉÒÔÕâÑùÀí½â, ÆäʵËùÓеÄÇëÇó¾ùÊ×ÏÈÓÉ service() ½øÐд¦Àí, ¶øÔÚ javax.servlet.http.HttpServlet µÄ service() ·½·¨ÖÐ, Ö÷Òª×öµÄÊÂÇé¾ÍÊÇÅжÏÇëÇóÀàÐÍÊÇ Get »¹ÊÇ Post, È»ºóµ÷ÓöÔÓ¦µÄ doGet/doPost Ö´ÐÐ.


8 StrutsÔõô½â¾ö±íµ¥Öظ´Ìá½»


Ïà¹ØÎÄÕÂ:


StrutsµÄToken£¨ÁîÅÆ£©»úÖÆÄܹ»ºÜºÃµÄ½â¾ö±íµ¥Öظ´Ìá½»µÄÎÊÌ⣬»ù±¾Ô­ÀíÊÇ£º·þÎñÆ÷¶ËÔÚ´¦Àíµ½´ïµÄÇëÇó֮ǰ£¬»á½«ÇëÇóÖаüº¬µÄÁîÅÆÖµÓë±£´æÔÚµ±Ç°Óû§»á»°ÖеÄÁîÅÆÖµ½øÐбȽϣ¬¿´ÊÇ·ñÆ¥Åä¡£ÔÚ´¦ÀíÍê¸ÃÇëÇóºó£¬ÇÒÔڴ𸴷¢Ë͸ø¿Í»§¶Ë֮ǰ£¬½«»á²úÉúÒ»¸öеÄÁîÅÆ£¬¸ÃÁîÅƳý´«¸ø¿Í»§¶ËÒÔÍ⣬Ҳ»á½«Óû§»á»°Öб£´æµÄ¾ÉµÄÁîÅƽøÐÐÌæ»»¡£ÕâÑùÈç¹ûÓû§»ØÍ˵½¸Õ²ÅµÄÌá½»Ò³Ãæ²¢ÔÙ´ÎÌá½»µÄ»°£¬¿Í»§¶Ë´«¹ýÀ´µÄÁîÅƾͺͷþÎñÆ÷¶ËµÄÁîÅƲ»Ò»Ö£¬´Ó¶øÓÐЧµØ·ÀÖ¹ÁËÖظ´Ìá½»µÄ·¢Éú¡£


ÕâʱÆäʵҲ¾ÍÊÇÁ½µã£¬µÚÒ»£ºÄãÐèÒªÔÚÇëÇóÖÐÓÐÕâ¸öÁîÅÆÖµ£¬ÇëÇóÖеÄÁîÅÆÖµÈçºÎ±£´æ£¬Æäʵ¾ÍºÍÎÒÃÇƽʱÔÚÒ³ÃæÖб£´æһЩÐÅÏ¢ÊÇÒ»ÑùµÄ£¬Í¨¹ýÒþ²Ø×Ö¶ÎÀ´±£´æ£¬±£´æµÄÐÎʽÈ磺 ¡´input type=¡±hidden¡± name=¡±org.apache.struts.taglib.html.TOKEN¡± value=¡±6aa35341f25184fd996c4c918255c3ae¡±¡µ£¬Õâ¸övalueÊÇTokenProcessorÀàÖеÄgenerateToken()»ñµÃµÄ£¬ÊǸù¾Ýµ±Ç°Óû§µÄsession idºÍµ±Ç°Ê±¼äµÄlongÖµÀ´¼ÆËãµÄ¡£µÚ¶þ£ºÔÚ¿Í»§¶ËÌá½»ºó£¬ÎÒÃÇÒª¸ù¾ÝÅжÏÔÚÇëÇóÖаüº¬µÄÖµÊÇ·ñºÍ·þÎñÆ÷µÄÁîÅÆÒ»Ö£¬ÒòΪ·þÎñÆ÷ÿ´ÎÌá½»¶¼»áÉú³ÉеÄToken£¬ËùÒÔ£¬Èç¹ûÊÇÖظ´Ìá½»£¬¿Í»§¶ËµÄTokenÖµºÍ·þÎñÆ÷¶ËµÄTokenÖµ¾Í»á²»Ò»Ö¡£ÏÂÃæ¾ÍÒÔÔÚÊý¾Ý¿âÖвåÈëÒ»ÌõÊý¾ÝÀ´ËµÃ÷ÈçºÎ·ÀÖ¹Öظ´Ìá½»¡£


ÔÚActionÖеÄadd·½·¨ÖУ¬ÎÒÃÇÐèÒª½«TokenÖµÃ÷È·µÄÒªÇó±£´æÔÚÒ³ÃæÖУ¬Ö»ÐèÔö¼ÓÒ»ÌõÓï¾ä£ºsaveToken(request);£¬ÈçÏÂËùʾ£º


public ActionForward add(ActionMapping mapping, ActionForm form,


HttpServletRequest request, HttpServletResponse response)


//Ç°ÃæµÄ´¦ÀíÊ¡ÂÔ


saveToken(request);


return mapping.findForward(¡°add¡±);


}ÔÚActionµÄinsert·½·¨ÖУ¬ÎÒÃǸù¾Ý±íµ¥ÖеÄTokenÖµÓë·þÎñÆ÷¶ËµÄTokenÖµ±È½Ï£¬ÈçÏÂËùʾ£º


public ActionForward insert(ActionMapping mapping, ActionForm form,


HttpServletRequest request, HttpServletResponse response)


if (isTokenValid(request, true)) {


// ±íµ¥²»ÊÇÖظ´Ìá½»


//ÕâÀïÊDZ£´æÊý¾ÝµÄ´úÂë


} else {


//±íµ¥Öظ´Ìá½»


saveToken(request);


//ÆäËüµÄ´¦Àí´úÂë


}


}


ÆäʵʹÓÃÆðÀ´ºÜ¼òµ¥£¬¾Ù¸ö×î¼òµ¥¡¢×îÐèҪʹÓÃÕâ¸öµÄÀý×Ó£º


Ò»°ã¿ØÖÆÖظ´Ìá½»Ö÷ÒªÊÇÓÃÔÚ¶ÔÊý¾Ý¿â²Ù×÷µÄ¿ØÖÆÉÏ£¬±ÈÈç²åÈë¡¢¸üС¢É¾³ýµÈ£¬ÓÉÓÚ¸üС¢É¾³ýÒ»°ã¶¼ÊÇͨ¹ýidÀ´²Ù×÷£¨ÀýÈ磺updateXXXById, removeXXXById£©£¬ËùÒÔÕâÀà²Ù×÷¿ØÖƵÄÒâÒå²»ÊǺܴ󣨲»Åųý¸ö±ðÏÖÏ󣩣¬Öظ´Ìá½»µÄ¿ØÖÆÒ²¾ÍÖ÷ÒªÊÇÔÚ²åÈëʱµÄ¿ØÖÆÁË¡£


ÏÈ˵һÏ£¬ÎÒÃÇÄ¿Ç°Ëù×öÏîÄ¿µÄÇé¿ö£º


Ä¿Ç°µÄÏîÄ¿ÊÇÓÃStruts£«Spring£«Ibatis£¬Ò³ÃæÓÃjstl£¬Struts¸´ÔÓView²ã£¬SpringÔÚService²ãÌṩÊÂÎñ¿ØÖÆ£¬IbatisÊÇÓÃÀ´´úÌæJDBC£¬ËùÓÐÒ³ÃæµÄ·ÃÎʶ¼²»ÊÇÖ±½Ó·ÃÎÊjsp£¬¶øÊÇ·ÃÎÊStructsµÄAction£¬ÔÙÓÉActionÀ´Forwardµ½Ò»¸öJsp£¬ËùÓÐÕë¶ÔÊý¾Ý¿âµÄ²Ù×÷£¬±ÈÈçÈ¡Êý¾Ý»òÐÞ¸ÄÊý¾Ý£¬¶¼ÊÇÔÚActionÀïÃæÍê³É£¬ËùÓеÄActionÒ»°ã¶¼¼Ì³ÐBaseDispatchAction£¬Õâ¸öÊÇ×Ô¼º½¨Á¢µÄÀ࣬ĿµÄÊÇΪËùÓеÄAction×öһЩͳһµÄ¿ØÖÆ£¬ÔÚStruts²ã£¬¶ÔÓÚÒ»¸ö¹¦ÄÜ£¬ÎÒÃÇÒ»°ã·ÖΪÁ½¸öAction£¬Ò»¸öActionÀïµÄ¹¦ÄÜÊDz»ÐèÒªµ÷ÓÃStrutsµÄÑéÖ¤¹¦Äܵģ¨³£¼ûµÄ·½·¨Ãû³ÆÓÐadd,edit,remove,view,list£©£¬ÁíÒ»¸öÊÇÐèÒªµ÷ÓÃStrutsµÄÑéÖ¤¹¦Äܵģ¨³£¼ûµÄ·½·¨Ãû³ÆÓÐinsert,update£©¡£


¾ÍÄÃÂÛ̳·¢ÌùÀ´Ëµ°É£¬ÂÛ̳·¢ÌùÊ×ÏÈÐèÒªÌøתµ½Ò»¸öÒ³Ã棬Äã¿ÉÒÔÌîдÌû×ÓµÄÖ÷ÌâºÍÄÚÈÝ£¬ÌîдÍêºó£¬µ¥»÷¡°Ìá½»¡±£¬Ìù×Ӿͷ¢±íÁË£¬ËùÒÔÕâÀï¾­¹ýÁ½¸ö²½Ö裺


1¡¢×ªµ½Ò»¸öÐÂÔöµÄÒ³Ã棬ÔÚActionÀïÎÒÃÇÒ»°ã³ÆΪadd£¬ÀýÈ磺


public ActionForward add(ActionMapping mapping, ActionForm form,


HttpServletRequest request, HttpServletResponse response)


throws Exception {


//ÕâÒ»¾äÊÇÊä³öµ÷ÊÔÐÅÏ¢£¬±íʾ´úÂëÖ´Ðе½ÕâÒ»¶ÎÁË


log.debug(¡°:: action ¨C subject add¡±);


//your code here


//ÕâÀï±£´æTokenÖµ


saveToken(request);


//Ìøתµ½addÒ³Ã棬ÔÚStructs-config.xmlÀïÃ涨Ò壬ÀýÈ磬Ìøתµ½subjectAdd.jsp


return mapping.findForward(¡°add¡±);


}


2¡¢ÔÚÌîд±êÌâºÍÄÚÈݺó£¬Ñ¡Ôñ Ìá½» £¬»áÌá½»µ½insert·½·¨£¬ÔÚinsert·½·¨ÀïÅжϣ¬ÊÇ·ñÖظ´Ìá½»ÁË¡£


public ActionForward insert(ActionMapping mapping, ActionForm form,


HttpServletRequest request, HttpServletResponse response){


if (isTokenValid(request, true)) {


// ±íµ¥²»ÊÇÖظ´Ìá½»


//ÕâÀïÊDZ£´æÊý¾ÝµÄ´úÂë


} else {


//±íµ¥Öظ´Ìá½»


saveToken(request);


//ÆäËüµÄ´¦Àí´úÂë


}


}


ÏÂÃæ¸üÏêϸһµã£¨×¢Ò⣬ÏÂÃæËùÓеĴúÂëʹÓÃÈ«½ÇÀ¨ºÅ£©£º


1¡¢ÄãÏë·¢Ìùʱ£¬µã»÷¡°ÎÒÒª·¢Ìù¡±Á´½ÓµÄ´úÂë¿ÉÒÔÀïÕâÑùµÄ£º


¡´html:link action=¡±subject.do method=add¡±¡µÎÒÒª·¢Ìù¡´/html:link¡µ


subject.do ºÍ method ÕâЩÔÚstruct-config.xmlÈçºÎ¶¨ÒåÎҾͲ»ËµÁË£¬µã»÷Á´½Óºó£¬»áÖ´ÐÐsubject.doµÄadd·½·¨£¬´úÂëÈçÉÏÃæ˵µÄ£¬Ìøתµ½subjectAdd.jspÒ³Ãæ¡£Ò³ÃæµÄ´úÂë´ó¸ÅÈçÏ£º


¡´html:form action=¡±subjectForm.do method=insert¡±¡µ


¡´html:text property=¡±title¡± /¡µ


¡´html:textarea property=¡±content¡± /¡µ


¡´html:submit property=¡±·¢±í¡± /¡µ


¡´html:reset property=¡±ÖØÌ /¡µ


¡´html:form¡µ


Èç¹ûÄãÔÚadd·½·¨Àï¼ÓÁË¡°saveToken(request);¡±ÕâÒ»¾ä£¬ÄÇÔÚsubjectAdd.jspÉú³ÉµÄÒ³ÃæÉÏ£¬»á¶àÒ»¸öÒþ²Ø×ֶΣ¬ÀàËÆÓÚÕâÑù¡´input type=¡±hidden¡± name=¡±org.apache.struts.taglib.html.TOKEN¡± value=¡±6aa35341f25184fd996c4c918255c3ae¡±¡µ£¬


2¡¢µã»÷·¢±íºó£¬±íµ¥Ìá½»µ½subjectForm.doÀïµÄinsert·½·¨ºó£¬ÄãÔÚinsert·½·¨ÀïÒª½«±íµ¥µÄÊý¾Ý²åÈëµ½Êý¾Ý¿âÖУ¬Èç¹ûûÓнøÐÐÖظ´Ìá½»µÄ¿ØÖÆ£¬ÄÇôÿµã»÷Ò»´Îä¯ÀÀÆ÷µÄˢа´Å¥£¬¶¼»áÔÚÊý¾Ý¿âÖвåÈëÒ»ÌõÏàͬµÄ¼Ç¼£¬Ôö¼ÓÏÂÃæµÄ´úÂ룬Äã¾Í¿ÉÒÔ¿ØÖÆÓû§µÄÖظ´Ìá½»ÁË¡£


if (isTokenValid(request, true)) {


// ±íµ¥²»ÊÇÖظ´Ìá½»


//ÕâÀïÊDZ£´æÊý¾ÝµÄ´úÂë


} else {


//±íµ¥Öظ´Ìá½»


saveToken(request);


//ÆäËüµÄ´¦Àí´úÂë


}


×¢Ò⣬Äã±ØÐëÔÚadd·½·¨ÀïʹÓÃÁËsaveToken(request)£¬Äã²ÅÄÜÔÚinsertÀïÅжϣ¬·ñÔò£¬Äãÿ´Î±£´æ²Ù×÷¶¼ÊÇÖظ´Ìá½»¡£


¼Çסһµã£¬StrutsÔÚÄãÿ´Î·ÃÎÊActionµÄʱºò£¬¶¼»á²úÉúÒ»¸öÁîÅÆ£¬±£´æÔÚÄãµÄSessionÀïÃ棬Èç¹ûÄãÔÚActionÀïµÄº¯ÊýÀïÃ棬ʹÓÃÁËsaveToken(request);£¬ÄÇôÕâ¸öÁîÅÆÒ²»á±£´æÔÚÕâ¸öActionËùForwardµ½µÄjspËùÉú³ÉµÄ¾²Ì¬Ò³ÃæÀï¡£


Èç¹ûÄãÔÚÄãActionµÄ·½·¨ÀïʹÓÃÁËisTokenValid£¬ÄÇôStruts»á½«Äã´ÓÄãµÄrequestÀïÃæÈ¥»ñÈ¡Õâ¸öÁîÅÆÖµ£¬È»ºóºÍSessionÀïµÄÁîÅÆÖµ×ö±È½Ï£¬Èç¹ûÁ½ÕßÏàµÈ£¬¾Í²»ÊÇÖظ´Ìá½»£¬Èç¹û²»ÏàµÈ£¬¾ÍÊÇÖظ´Ìá½»ÁË¡£


ÓÉÓÚÎÒÃÇÏîÄ¿µÄËùÓÐAction¶¼ÊǼ̳Ð×ÔBaseDispatchActionÕâ¸öÀ࣬ËùÒÔÎÒÃÇ»ù±¾É϶¼ÊÇÔÚÕâ¸öÀàÀïÃæ×öÁË±íµ¥Öظ´Ìá½»µÄ¿ØÖÆ£¬Ä¬ÈÏÊÇ¿ØÖÆadd·½·¨ºÍinsert·½·¨£¬Èç¹ûÐèÒª¿ØÖÆÆäËüµÄ·½·¨£¬¾Í×Ô¼ºÊÖ¶¯Ð´ÉÏÃæÕâЩ´úÂ룬·ñÔòÊDz»ÐèÒªÊÖдµÄ£¬¿ØÖƵĴúÂëÈçÏ£º


public abstract class BaseDispatchAction extends BaseAction {


protected ActionForward perform(ActionMapping mapping, ActionForm form,


HttpServletRequest request, HttpServletResponse response)


throws Exception {


String parameter = mapping.getParameter();


String name = request.getParameter(parameter);


if (null == name) { //Èç¹ûûÓÐÖ¸¶¨ method £¬ÔòĬÈÏΪ list


name = ¡°list¡±;


}


if (¡°add¡±.equals(name)) {


if (¡°add¡±.equals(name)) {


saveToken(request);


}


} else if (¡°insert¡±.equals(name)) {


if (!isTokenValid(request, true)) {


resetToken(request);


saveError(request, new ActionMessage(¡°error.repeatSubmit¡±));


log.error(¡°Öظ´Ìá½»£¡¡±);


return mapping.findForward(¡°error¡±);


}


}


return dispatchMethod2(mapping, form, request, response, name);


}


}



9 Hibernate µÄ»º´æºÍÑÓ³Ù¼ÓÔØ



»º´æ£º


»º´æÊǽéÓÚÓ¦ÓóÌÐòºÍÎïÀíÊý¾ÝÔ´Ö®¼ä£¬Æä×÷ÓÃÊÇΪÁ˽µµÍÓ¦ÓóÌÐò¶ÔÎïÀíÊý¾ÝÔ´·ÃÎʵÄƵ´Î£¬´Ó¶øÌá¸ßÁËÓ¦ÓõÄÔËÐÐÐÔÄÜ¡£»º´æÄÚµÄÊý¾ÝÊǶÔÎïÀíÊý¾ÝÔ´ÖеÄÊý¾ÝµÄ¸´ÖÆ£¬Ó¦ÓóÌÐòÔÚÔËÐÐʱ´Ó»º´æ¶ÁдÊý¾Ý£¬ÔÚÌض¨µÄʱ¿Ì»òʼþ»áͬ²½»º´æºÍÎïÀíÊý¾ÝÔ´µÄÊý¾Ý¡£


»º´æµÄ½éÖÊÒ»°ãÊÇÄڴ棬ËùÒÔ¶ÁдËٶȺܿ졣µ«Èç¹û»º´æÖдæ·ÅµÄÊý¾ÝÁ¿·Ç³£´óʱ£¬Ò²»áÓÃÓ²ÅÌ×÷Ϊ»º´æ½éÖÊ¡£»º´æµÄʵÏÖ²»½ö½öÒª¿¼ÂÇ´æ´¢µÄ½éÖÊ£¬»¹Òª¿¼Âǵ½¹ÜÀí»º´æµÄ²¢·¢·ÃÎʺͻº´æÊý¾ÝµÄÉúÃüÖÜÆÚ¡£


HibernateµÄ»º´æ°üÀ¨SessionµÄ»º´æºÍSessionFactoryµÄ»º´æ£¬ÆäÖÐSessionFactoryµÄ»º´æÓÖ¿ÉÒÔ·ÖΪÁ½ÀࣺÄÚÖûº´æºÍÍâÖûº´æ¡£SessionµÄ»º´æÊÇÄÚÖõģ¬²»Äܱ»Ð¶ÔØ£¬Ò²±»³ÆΪHibernateµÄµÚÒ»¼¶»º´æ¡£SessionFactoryµÄÄÚÖûº´æºÍSessionµÄ»º´æÔÚʵÏÖ·½Ê½ÉϱȽÏÏàËÆ£¬Ç°ÕßÊÇSessionFactory¶ÔÏóµÄһЩ¼¯ºÏÊôÐÔ°üº¬µÄÊý¾Ý£¬ºóÕßÊÇÖ¸SessionµÄһЩ¼¯ºÏÊôÐÔ°üº¬µÄÊý¾Ý¡£SessionFactoryµÄÄÚÖûº´æÖдæ·ÅÁËÓ³ÉäÔªÊý¾ÝºÍÔ¤¶¨ÒåSQLÓï¾ä£¬Ó³ÉäÔªÊý¾ÝÊÇÓ³ÉäÎļþÖÐÊý¾ÝµÄ¿½±´£¬¶øÔ¤¶¨ÒåSQLÓï¾äÊÇÔÚHibernate³õʼ»¯½×¶Î¸ù¾ÝÓ³ÉäÔªÊý¾ÝÍƵ¼³öÀ´£¬SessionFactoryµÄÄÚÖûº´æÊÇÖ»¶ÁµÄ£¬Ó¦ÓóÌÐò²»ÄÜÐ޸Ļº´æÖеÄÓ³ÉäÔªÊý¾ÝºÍÔ¤¶¨ÒåSQLÓï¾ä£¬Òò´ËSessionFactory²»ÐèÒª½øÐÐÄÚÖûº´æÓëÓ³ÉäÎļþµÄͬ²½¡£SessionFactoryµÄÍâÖûº´æÊÇÒ»¸ö¿ÉÅäÖõIJå¼þ¡£ÔÚĬÈÏÇé¿öÏ£¬SessionFactory²»»áÆôÓÃÕâ¸ö²å¼þ¡£ÍâÖûº´æµÄÊý¾ÝÊÇÊý¾Ý¿âÊý¾ÝµÄ¿½±´£¬ÍâÖûº´æµÄ½éÖÊ¿ÉÒÔÊÇÄÚ´æ»òÕßÓ²ÅÌ¡£SessionFactoryµÄÍâÖûº´æÒ²±»³ÆΪHibernateµÄµÚ¶þ¼¶»º´æ¡£


HibernateµÄÕâÁ½¼¶»º´æ¶¼Î»Óڳ־û¯²ã£¬´æ·ÅµÄ¶¼ÊÇÊý¾Ý¿âÊý¾ÝµÄ¿½±´£¬ÄÇôËüÃÇÖ®¼äµÄÇø±ðÊÇʲôÄØ£¿ÎªÁËÀí½â¶þÕßµÄÇø±ð£¬ÐèÒªÉîÈëÀí½â³Ö¾Ã»¯²ãµÄ»º´æµÄÁ½¸öÌØÐÔ£º»º´æµÄ·¶Î§ºÍ»º´æµÄ²¢·¢·ÃÎʲßÂÔ¡£


³Ö¾Ã»¯²ãµÄ»º´æµÄ·¶Î§


»º´æµÄ·¶Î§¾ö¶¨ÁË»º´æµÄÉúÃüÖÜÆÚÒÔ¼°¿ÉÒÔ±»Ë­·ÃÎÊ¡£»º´æµÄ·¶Î§·ÖΪÈýÀà¡£


1 ÊÂÎñ·¶Î§£º»º´æÖ»Äܱ»µ±Ç°ÊÂÎñ·ÃÎÊ¡£»º´æµÄÉúÃüÖÜÆÚÒÀÀµÓÚÊÂÎñµÄÉúÃüÖÜÆÚ£¬µ±ÊÂÎñ½áÊøʱ£¬»º´æÒ²¾Í½áÊøÉúÃüÖÜÆÚ¡£ÔÚ´Ë·¶Î§Ï£¬»º´æµÄ½éÖÊÊÇÄÚ´æ¡£ÊÂÎñ¿ÉÒÔÊÇÊý¾Ý¿âÊÂÎñ»òÕßÓ¦ÓÃÊÂÎñ£¬Ã¿¸öÊÂÎñ¶¼ÓжÀ×ԵĻº´æ£¬»º´æÄÚµÄÊý¾Ýͨ³£²ÉÓÃÏ໥¹ØÁªµÄµÄ¶ÔÏóÐÎʽ¡£


2 ½ø³Ì·¶Î§£º»º´æ±»½ø³ÌÄÚµÄËùÓÐÊÂÎñ¹²Ïí¡£ÕâЩÊÂÎñÓпÉÄÜÊDz¢·¢·ÃÎÊ»º´æ£¬Òò´Ë±ØÐë¶Ô»º´æ²ÉÈ¡±ØÒªµÄÊÂÎñ¸ôÀë»úÖÆ¡£»º´æµÄÉúÃüÖÜÆÚÒÀÀµÓÚ½ø³ÌµÄÉúÃüÖÜÆÚ£¬½ø³Ì½áÊøʱ£¬»º´æÒ²¾Í½áÊøÁËÉúÃüÖÜÆÚ¡£½ø³Ì·¶Î§µÄ»º´æ¿ÉÄÜ»á´æ·Å´óÁ¿µÄÊý¾Ý£¬ËùÒÔ´æ·ÅµÄ½éÖÊ¿ÉÒÔÊÇÄÚ´æ»òÓ²ÅÌ¡£»º´æÄÚµÄÊý¾Ý¼È¿ÉÒÔÊÇÏ໥¹ØÁªµÄ¶ÔÏóÐÎʽҲ¿ÉÒÔÊǶÔÏóµÄËÉÉ¢Êý¾ÝÐÎʽ¡£ËÉÉ¢µÄ¶ÔÏóÊý¾ÝÐÎʽÓеãÀàËÆÓÚ¶ÔÏóµÄÐòÁл¯Êý¾Ý£¬µ«ÊǶÔÏó·Ö½âΪËÉÉ¢µÄËã·¨±È¶ÔÏóÐòÁл¯µÄËã·¨ÒªÇó¸ü¿ì¡£


3 ¼¯Èº·¶Î§£ºÔÚ¼¯Èº»·¾³ÖУ¬»º´æ±»Ò»¸ö»úÆ÷»òÕ߶à¸ö»úÆ÷µÄ½ø³Ì¹²Ïí¡£»º´æÖеÄÊý¾Ý±»¸´ÖƵ½¼¯Èº»·¾³ÖеÄÿ¸ö½ø³Ì½Úµã£¬½ø³Ì¼äͨ¹ýÔ¶³ÌͨÐÅÀ´±£Ö¤»º´æÖеÄÊý¾ÝµÄÒ»ÖÂÐÔ£¬»º´æÖеÄÊý¾Ýͨ³£²ÉÓöÔÏóµÄËÉÉ¢Êý¾ÝÐÎʽ¡£


¶Ô´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬Ó¦¸ÃÉ÷Öصؿ¼ÂÇÊÇ·ñÐèҪʹÓü¯Èº·¶Î§µÄ»º´æ£¬ÒòΪ·ÃÎʵÄËٶȲ»Ò»¶¨»á±ÈÖ±½Ó·ÃÎÊÊý¾Ý¿âÊý¾ÝµÄËٶȿì¶àÉÙ¡£


³Ö¾Ã»¯²ã¿ÉÒÔÌṩ¶àÖÖ·¶Î§µÄ»º´æ¡£Èç¹ûÔÚÊÂÎñ·¶Î§µÄ»º´æÖÐûÓв鵽ÏàÓ¦µÄÊý¾Ý£¬»¹¿ÉÒÔµ½½ø³Ì·¶Î§»ò¼¯Èº·¶Î§µÄ»º´æÄÚ²éѯ£¬Èç¹û»¹ÊÇûÓв鵽£¬ÄÇôֻÓе½Êý¾Ý¿âÖвéѯ¡£ÊÂÎñ·¶Î§µÄ»º´æÊdz־û¯²ãµÄµÚÒ»¼¶»º´æ£¬Í¨³£ËüÊDZØÐèµÄ£»½ø³Ì·¶Î§»ò¼¯Èº·¶Î§µÄ»º´æÊdz־û¯²ãµÄµÚ¶þ¼¶»º´æ£¬Í¨³£ÊÇ¿ÉÑ¡µÄ¡£


³Ö¾Ã»¯²ãµÄ»º´æµÄ²¢·¢·ÃÎʲßÂÔ


µ±¶à¸ö²¢·¢µÄÊÂÎñͬʱ·ÃÎʳ־û¯²ãµÄ»º´æµÄÏàͬÊý¾Ýʱ£¬»áÒýÆð²¢·¢ÎÊÌ⣬±ØÐë²ÉÓñØÒªµÄÊÂÎñ¸ôÀë´ëÊ©¡£


ÔÚ½ø³Ì·¶Î§»ò¼¯Èº·¶Î§µÄ»º´æ£¬¼´µÚ¶þ¼¶»º´æ£¬»á³öÏÖ²¢·¢ÎÊÌâ¡£Òò´Ë¿ÉÒÔÉ趨ÒÔÏÂËÄÖÖÀàÐ͵IJ¢·¢·ÃÎʲßÂÔ£¬Ã¿Ò»ÖÖ²ßÂÔ¶ÔÓ¦Ò»ÖÖÊÂÎñ¸ôÀ뼶±ð¡£


ÊÂÎñÐÍ£º½ö½öÔÚÊܹÜÀí»·¾³ÖÐÊÊÓá£ËüÌṩÁËRepeatable ReadÊÂÎñ¸ôÀ뼶±ð¡£¶ÔÓÚ¾­³£±»¶Áµ«ºÜÉÙÐ޸ĵÄÊý¾Ý£¬¿ÉÒÔ²ÉÓÃÕâÖÖ¸ôÀëÀàÐÍ£¬ÒòΪËü¿ÉÒÔ·ÀÖ¹Ôà¶ÁºÍ²»¿ÉÖظ´¶ÁÕâÀàµÄ²¢·¢ÎÊÌâ¡£


¶ÁдÐÍ£ºÌṩÁËRead CommittedÊÂÎñ¸ôÀ뼶±ð¡£½ö½öÔڷǼ¯ÈºµÄ»·¾³ÖÐÊÊÓ᣶ÔÓÚ¾­³£±»¶Áµ«ºÜÉÙÐ޸ĵÄÊý¾Ý£¬¿ÉÒÔ²ÉÓÃÕâÖÖ¸ôÀëÀàÐÍ£¬ÒòΪËü¿ÉÒÔ·ÀÖ¹Ôà¶ÁÕâÀàµÄ²¢·¢ÎÊÌâ¡£


·ÇÑϸñ¶ÁдÐÍ£º²»±£Ö¤»º´æÓëÊý¾Ý¿âÖÐÊý¾ÝµÄÒ»ÖÂÐÔ¡£Èç¹û´æÔÚÁ½¸öÊÂÎñͬʱ·ÃÎÊ»º´æÖÐÏàͬÊý¾ÝµÄ¿ÉÄÜ£¬±ØÐëΪ¸ÃÊý¾ÝÅäÖÃÒ»¸öºÜ¶ÌµÄÊý¾Ý¹ýÆÚʱ¼ä£¬´Ó¶ø¾¡Á¿±ÜÃâÔà¶Á¡£¶ÔÓÚ¼«ÉÙ±»Ð޸ģ¬²¢ÇÒÔÊÐíż¶ûÔà¶ÁµÄÊý¾Ý£¬¿ÉÒÔ²ÉÓÃÕâÖÖ²¢·¢·ÃÎʲßÂÔ¡£ ¡¡¡¡Ö»¶ÁÐÍ£º¶ÔÓÚ´ÓÀ´²»»áÐ޸ĵÄÊý¾Ý£¬Èç²Î¿¼Êý¾Ý£¬¿ÉÒÔʹÓÃÕâÖÖ²¢·¢·ÃÎʲßÂÔ¡£


ÊÂÎñÐͲ¢·¢·ÃÎʲßÂÔÊÇÊÂÎñ¸ôÀ뼶±ð×î¸ß£¬Ö»¶ÁÐ͵ĸôÀ뼶±ð×îµÍ¡£ÊÂÎñ¸ôÀ뼶±ðÔ½¸ß£¬²¢·¢ÐÔÄܾÍÔ½µÍ¡£


ʲôÑùµÄÊý¾ÝÊʺϴæ·Åµ½µÚ¶þ¼¶»º´æÖУ¿


1¡¢ºÜÉÙ±»Ð޸ĵÄÊý¾Ý


2¡¢²»ÊǺÜÖØÒªµÄÊý¾Ý£¬ÔÊÐí³öÏÖż¶û²¢·¢µÄÊý¾Ý


3¡¢²»»á±»²¢·¢·ÃÎʵÄÊý¾Ý


4¡¢²Î¿¼Êý¾Ý


²»Êʺϴæ·Åµ½µÚ¶þ¼¶»º´æµÄÊý¾Ý£¿


1¡¢¾­³£±»Ð޸ĵÄÊý¾Ý


2¡¢²ÆÎñÊý¾Ý£¬¾ø¶Ô²»ÔÊÐí³öÏÖ²¢·¢


3¡¢ÓëÆäËûÓ¦Óù²ÏíµÄÊý¾Ý¡£


HibernateµÄ¶þ¼¶»º´æ


ÈçÇ°ËùÊö£¬HibernateÌṩÁËÁ½¼¶»º´æ£¬µÚÒ»¼¶ÊÇSessionµÄ»º´æ¡£ÓÉÓÚSession¶ÔÏóµÄÉúÃüÖÜÆÚͨ³£¶ÔÓ¦Ò»¸öÊý¾Ý¿âÊÂÎñ»òÕßÒ»¸öÓ¦ÓÃÊÂÎñ£¬Òò´ËËüµÄ»º´æÊÇÊÂÎñ·¶Î§µÄ»º´æ¡£µÚÒ»¼¶»º´æÊDZØÐèµÄ£¬²»ÔÊÐí¶øÇÒÊÂʵÉÏÒ²ÎÞ·¨±Èж³ý¡£ÔÚµÚÒ»¼¶»º´æÖУ¬³Ö¾Ã»¯ÀàµÄÿ¸öʵÀý¶¼¾ßÓÐΨһµÄOID¡£


µÚ¶þ¼¶»º´æÊÇÒ»¸ö¿É²å°ÎµÄµÄ»º´æ²å¼þ£¬ËüÊÇÓÉSessionFactory¸ºÔð¹ÜÀí¡£ÓÉÓÚSessionFactory¶ÔÏóµÄÉúÃüÖÜÆÚºÍÓ¦ÓóÌÐòµÄÕû¸ö¹ý³Ì¶ÔÓ¦£¬Òò´ËµÚ¶þ¼¶»º´æÊǽø³Ì·¶Î§»òÕß¼¯Èº·¶Î§µÄ»º´æ¡£Õâ¸ö»º´æÖдæ·ÅµÄ¶ÔÏóµÄËÉÉ¢Êý¾Ý¡£µÚ¶þ¼¶¶ÔÏóÓпÉÄܳöÏÖ²¢·¢ÎÊÌ⣬Òò´ËÐèÒª²ÉÓÃÊʵ±µÄ²¢·¢·ÃÎʲßÂÔ£¬¸Ã²ßÂÔΪ±»»º´æµÄÊý¾ÝÌṩÁËÊÂÎñ¸ôÀ뼶±ð¡£»º´æÊÊÅäÆ÷ÓÃÓڰѾßÌåµÄ»º´æʵÏÖÈí¼þÓëHibernate¼¯³É¡£µÚ¶þ¼¶»º´æÊÇ¿ÉÑ¡µÄ£¬¿ÉÒÔÔÚÿ¸öÀà»òÿ¸ö¼¯ºÏµÄÁ£¶ÈÉÏÅäÖõڶþ¼¶»º´æ¡£


HibernateµÄ¶þ¼¶»º´æ²ßÂÔµÄÒ»°ã¹ý³ÌÈçÏ£º


1) Ìõ¼þ²éѯµÄʱºò£¬×ÜÊÇ·¢³öÒ»Ìõselect * from table_name where ¡­. £¨Ñ¡ÔñËùÓÐ×ֶΣ©ÕâÑùµÄSQLÓï¾ä²éѯÊý¾Ý¿â£¬Ò»´Î»ñµÃËùÓеÄÊý¾Ý¶ÔÏó¡£


2) °Ñ»ñµÃµÄËùÓÐÊý¾Ý¶ÔÏó¸ù¾ÝID·ÅÈëµ½µÚ¶þ¼¶»º´æÖС£


3) µ±Hibernate¸ù¾ÝID·ÃÎÊÊý¾Ý¶ÔÏóµÄʱºò£¬Ê×ÏÈ´ÓSessionÒ»¼¶»º´æÖв飻²é²»µ½£¬Èç¹ûÅäÖÃÁ˶þ¼¶»º´æ£¬ÄÇô´Ó¶þ¼¶»º´æÖв飻²é²»µ½£¬ÔÙ²éѯÊý¾Ý¿â£¬°Ñ½á¹û°´ÕÕID·ÅÈëµ½»º´æ¡£


4) ɾ³ý¡¢¸üС¢Ôö¼ÓÊý¾ÝµÄʱºò£¬Í¬Ê±¸üлº´æ¡£


HibernateµÄ¶þ¼¶»º´æ²ßÂÔ£¬ÊÇÕë¶ÔÓÚID²éѯµÄ»º´æ²ßÂÔ£¬¶ÔÓÚÌõ¼þ²éѯÔòºÁÎÞ×÷Óá£Îª´Ë£¬HibernateÌṩÁËÕë¶ÔÌõ¼þ²éѯµÄQuery»º´æ¡£


HibernateµÄQuery»º´æ²ßÂԵĹý³ÌÈçÏ£º


1) HibernateÊ×Ïȸù¾ÝÕâЩÐÅÏ¢×é³ÉÒ»¸öQuery Key£¬Query Key°üÀ¨Ìõ¼þ²éѯµÄÇëÇóÒ»°ãÐÅÏ¢£ºSQL, SQLÐèÒªµÄ²ÎÊý£¬¼Ç¼·¶Î§£¨ÆðʼλÖÃrowStart£¬×î´ó¼Ç¼¸öÊýmaxRows)£¬µÈ¡£


2) Hibernate¸ù¾ÝÕâ¸öQuery Keyµ½Query»º´æÖвéÕÒ¶ÔÓ¦µÄ½á¹ûÁÐ±í¡£Èç¹û´æÔÚ£¬ÄÇô·µ»ØÕâ¸ö½á¹ûÁÐ±í£»Èç¹û²»´æÔÚ£¬²éѯÊý¾Ý¿â£¬»ñÈ¡½á¹ûÁÐ±í£¬°ÑÕû¸ö½á¹ûÁбí¸ù¾ÝQuery Key·ÅÈëµ½Query»º´æÖС£


3) Query KeyÖеÄSQLÉæ¼°µ½Ò»Ð©±íÃû£¬Èç¹ûÕâЩ±íµÄÈκÎÊý¾Ý·¢ÉúÐ޸ġ¢É¾³ý¡¢Ôö¼ÓµÈ²Ù×÷£¬ÕâЩÏà¹ØµÄQuery Key¶¼Òª´Ó»º´æÖÐÇå¿Õ¡£


ÑÓ³Ù¼ÓÔØ£º


µ±ÏµÍ³´ÓÊý¾Ý¿âÖгõʼ»¯Ä³¸ö³Ö¾Ã»¯Ààʱ£¬¼¯ºÏÊôÐÔÊÇ·ñËæ³Ö¾Ã»¯ÀàÒ»Æð³õʼ»¯
ÄØ Èç¹û¼¯ºÏÊôÐÔÀï°üº¬Ê®Íò£¬ÉõÖÁ°ÙÍòµÄ¼Ç¼£¬ÔÚ³õʼ»¯³Ö¾Ã»¯Àà֮ʱ£¬ÒªÍê³ÉËùÓÐ
¼¯ºÏÊôÐԵļÓÔØ£¬ÊƱؽ«µ¼ÖÂÐÔÄܼ±¾çϽµ¡£ÏµÍ³ºÜÓпÉÄÜÖ»ÐèҪʹÓó־û¯ÀàµÄij¸ö
ÊôÐÔÖеIJ¿·Ö¼Ç¼£¬ÕâÑù£¬Ã»ÓбØÒªÒ»´Î¼ÓÔØËùÓеļ¯ºÏÊôÐÔ¡£
¶ÔÓÚ¼¯ºÏÊôÐÔ£¬Í¨³£ÍƼöʹÓÃÑÓ³Ù¼ÓÔزßÂÔ¡£ËùνÑÓ³Ù¼ÓÔؾÍÊǵ±ÏµÍ³ÐèҪʹÓúÏÊôÐÔʱ²Å´ÓÊý¾Ý¿â×°ÔعØÁªµÄÊý¾Ý¡£
Hibernate ¶Ô¼¯ºÏÊôÐÔĬÈϲÉÓÃÑÓ³Ù¼ÓÔØ£¬ÔÚijЩÌØÊâµÄÇé¿öÏÂΪset£¬ list, map µÈÔª
ËØÉèÖÃlazy= ¡°false¡± ÊôÐÔÀ´È¡ÏûÑÓ³Ù¼ÓÔØ¡£
¸ù¾ÝÇ°ÃæµÄ½²½â£¬¿É½«¼¯ºÏ·Ö³ÉÈçÏÂÁ½Àà¡£
¡¤ÓÐÐò¼¯ºÏ:¼¯ºÏÀïµÄÔªËØ¿ÉÒÔ¸ù¾Ýkey »òindex ·ÃÎÊ¡£
¡¤ÎÞÐò¼¯ºÏ:¼¯ºÏÀïµÄÔªËØÖ»ÄܱéÀú¡£
ÓÐÐò¼¯ºÏ¶¼ÓµÓÐÒ»¸öÓɺÍ×é³ÉµÄÁªºÏÖ÷¼ü£¬ÔÚÕâÖÖÇé¿öÏ£¬¼¯ºÏÊôÐÔ
µÄ¸üÐÂÊǷdz£¸ßЧµÄÒ»Ò»Ö÷¼üÒѾ­±»ÓÐЧµØË÷Òý¡£Òò´Ëµ±Hibernate ÊÔͼ¸üлòɾ³ýijÐÐ
ʱ£¬¿ÉÒÔѸËÙÕÒµ½¸ÃÐÐÊý¾Ý¡£
¶ø¶ÔÎÞÐò¼¯ºÏ¶øÑÔ£¬Èç¹û¼¯ºÏÖÐÔªËØÊÇ×éºÏÔªËØ»òÕß´óÁ¿Îı¾¼°¶þ½øÖÆÓî¶Î£¬Êý¾Ý
¿â¿ÉÄÜÎÞ·¨ÓÐЧµØ¶Ô¸´ÔÓµÄÖ÷¼ü½øÐÐË÷Òý¡£¼´Ê¹¿ÉÒÔ½¨Á¢Ë÷Òý£¬ÐÔÄÜÒ²·Ç³£²î¡£ÀýÈçSet
µÄÖ÷¼üÓɺÍÆäËûÔªËØÓî¶Î¹¹³É£¬»òÕ߸ù±¾Ã»ÓÐÖ÷¼ü¡£
ÏÔÈ»£¬ÓÐÐò¼¯ºÏµÄÊôÐÔÔÚÔö¼Ó¡¢É¾³ý¼°ÐÞ¸ÄÖÐÓµÓнϺõÄÐÔÄܱíÏÖ¡£
ÔÚÉè¼ÆÁ¼ºÃµÄHibernate Domain Object ÖУ¬¼¯ºÏÊôÐÔͨ³£¶¼»áÔö¼Óinverse=¡±true¡±µÄ
ÊôÐÔ£¬´Ëʱ¼¯ºÏ¶Ë²»ÔÙ¿ØÖƹØÁª¹Øϵ¡£Òò´Ë£¬ÎÞÐ뿼ÂÇÆ伯ºÏµÄ¸üÐÂÐÔÄÜ¡£



10 Spring µÄÊÂÎñ´¦Àí


SpringµÄÉùÃ÷ʽÊÂÎñ¹ËÃû˼Òå¾ÍÊDzÉÓÃÉêÃ÷µÄ·½Ê½À´´¦ÀíÊÂÎñ¡£ÕâÀïËù˵µÄÉùÃ÷£¬¾ÍÊÇÖ¸ÔÚÅäÖÃÎļþÖÐÉêÃ÷¡£ÓÃÔÚSpringÅäÖÃÎļþÖÐÉêÃ÷ʽµØ´¦ÀíÊÂÎñÀ´´úÌæ´úÂëʽµÄ¡£ÕâÑùµÄºÃ´¦ÊÇÒµÎñÂß¼­£¨Dao£©¾Í²»»áÒâʶµ½ÊÂÎñ¹ÜÀíµÄ´æÔÚ£¬¶øÇÒά»¤ÆðÀ´¼«Æä·½±ã¡£
ʹÓÃÉùÃ÷ʽÊÂÎñ¹ÜÀíʱ£¬Í¨³£Òª°ÑÎÒÃǵÄDao½»¸øÒ»¸ö´úÀí£¬ÓÉÆä½øÐйÜÀí¡£Õâ¸ö´úÀíÒ»°ãspringÀïµÄ£ºorg.springwork.transaction.interceptor.TransactionProxyFactoryBean
ÎÒµÄÅäÖÃÇåµ¥ÈçÏ£º
class=¡±org.springwork.transaction.interceptor.TransactionProxyFactoryBean¡±>

<>
cn.sunrain.test.service.hibernate.IHabtestService












class=¡±org.springwork.transaction.interceptor.NameMatchTransactionAttributeSource¡±>



PROPAGATION_REQUIRED



ÒÔÉ϶¨Òåºó£¬±íʾÔÚhibernateServiceÖУ¬·½·¨executeTest£¨£©»á¼ÓÉÏÊÂÎñ´¦Àí£¬¸Ã·½·¨ÄÚ·¢ÉúÒì³£½«»Ø¹ö¡£
ÐÞ¸ÄÍêÒԺ󣬵±Òªµ÷ÓÃhibernateServiceÕâ¸öidµÄbeanʱ£¬¸Ä³Éµ÷ÓÃhibernateTestProxy¼´¿É.


ÏÔÈ»£¬ÒÔÕâÖÖ·½Ê½½øÐдúÀí£¬ÅäÖÃÌ«¹ý¸´ÔÓ£¬ÒòΪÿ¶¨ÒåÒ»¸ö·½·¨ÎªÊÂÎñ·½·¨¾ÍÐèÒªÅäÖÃÈç´ËÒ»´ó¶Î¡£Òò´Ë£¬¿ÉÒÔÓÃ×Ô¶¯´úÀíÀ´½â¾ö¡£


class=¡±org.springwork.aop.work.autoproxy.DefaultAdvisorAutoProxyCreator¡±>


class=¡±org.springwork.transaction.interceptor.TransactionAttributeSourceAdvisor¡±>




class=¡±org.springwork.transaction.interceptor.TransactionInterceptor¡±>








class=¡±org.springwork.transaction.interceptor.NameMatchTransactionAttributeSource¡±>


PROPAGATION_REQUIRED



ÔªËبC>
class=¡±org.springwork.transaction.interceptor.MethodMapTransactionAttributeSource¡±>



<>PROPAGATION_REQUIRED





¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª


2.ÈçºÎÓÅ»¯OracleÊý¾Ý¿â±£³ÖÓÅÁ¼ÐÔÄÜ



¸ù¾Ýʵ¼Ê¾­Ñ飬ÔÚÒ»¸ö´óÊý¾Ý¿âÖУ¬Êý¾Ý¿â¿Õ¼äµÄ¾ø´ó¶àÊýÊDZ»ÉÙÁ¿µÄ±íËùÕ¼ÓС£ÎªÁ˼ò»¯´óÐÍÊý¾Ý¿âµÄ¹ÜÀí£¬¸ÄÉÆÓ¦ÓõIJéѯÐÔÄÜ£¬Ò»°ã¿ÉÒÔʹÓ÷ÖÇøÕâÖÖÊֶΡ£ 1.·ÖÇø(½¨Á¢·ÖÇø±í,·ÖÇøË÷Òý,·ÖÇø¹ÜÀí(¸ù¾Ýʵ¼ÊÐèÒª£¬»¹¿ÉÒÔʹÓÃAlter table ÃüÁîÀ´Ôö¼Ó¡¢É¾³ý¡¢½»»»¡¢Òƶ¯¡¢Ð޸ġ¢ÖØÃüÃû¡¢»®·Ö¡¢½Ø¶ÌÒ»¸öÒÑ´æÔÚ·ÖÇøµÄ½á¹¹))2.Öؽ¨Ë÷Òý3.¶ÎµÄËéƬÕûÀí


¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª-


3.ʲôÊÇSQL×¢È룿


¢Ù http://www.19cn.com/showdetail.asp id=49


¢Ú http://www.19cn.com/showdetail.asp id=49 and 1=1


¢Û http://www.19cn.com/showdetail.asp id=49 and 1=2



Õâ¾ÍÊǾ­µäµÄ1=1¡¢1=2²âÊÔ·¨ÁË£¬ÔõôÅжÏÄØ£¿¿´¿´ÉÏÃæÈý¸öÍøÖ··µ»ØµÄ½á¹û¾ÍÖªµÀÁË£º



¿ÉÒÔ×¢ÈëµÄ±íÏÖ£º



¢Ù Õý³£ÏÔʾ£¨ÕâÊDZØÈ»µÄ£¬²»È»¾ÍÊdzÌÐòÓдíÎóÁË£©


¢Ú Õý³£ÏÔʾ£¬ÄÚÈÝ»ù±¾Óë¢ÙÏàͬ


¢Û ÌáʾBOF»òEOF£¨³ÌÐòû×öÈκÎÅжÏʱ£©¡¢»òÌáʾÕÒ²»µ½¼Ç¼£¨ÅжÏÁËrs.eofʱ£©¡¢»òÏÔʾÄÚÈÝΪ¿Õ£¨³ÌÐò¼ÓÁËon error resume next£©



²»¿ÉÒÔ×¢Èë¾Í±È½ÏÈÝÒ×ÅжÏÁË£¬¢ÙͬÑùÕý³£ÏÔʾ£¬¢ÚºÍ¢ÛÒ»°ã¶¼»áÓгÌÐò¶¨ÒåµÄ´íÎóÌáʾ£¬»òÌáʾÀàÐÍת»»Ê±³ö´í¡£


¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C


4.ÕýÔò±í´ïʽµÄÑéÖ¤¹æÔò£¿


Æ¥ÅäÖÐÎÄ×Ö·ûµÄÕýÔò±í´ïʽ£º [\u4e00-\u9fa5]



Æ¥ÅäË«×Ö½Ú×Ö·û(°üÀ¨ºº×ÖÔÚÄÚ)£º[^\x00-\xff]



Æ¥Åä¿ÕÐеÄÕýÔò±í´ïʽ£º\n[\s| ]*\r



Æ¥ÅäHTML±ê¼ÇµÄÕýÔò±í´ïʽ£º/<(.*)>.*<\/\1>|<(.*) \/>/



Æ¥ÅäÊ×β¿Õ¸ñµÄÕýÔò±í´ïʽ£º(^\s*)|(\s*$)



Æ¥ÅäEmailµØÖ·µÄÕýÔò±í´ïʽ£º\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*



Æ¥ÅäÍøÖ·URLµÄÕýÔò±í´ïʽ£ºhttp://([\w-]+\.)+[\w-]+(/[\w- ./ %&=]*)


¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C


5.ÔËÓÃJSPÉÏ´«Îļþ


1¡¢uploadimage.jsp



<%@ page contentType=¡±text/html;charset=gb2312¡å language=¡±java¡± import=¡±java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,


java.sql.*,com.jspsmart.upload.*,java.util.*,cn.oof.database.*,cn.oof.house.*¡±%>


<%


SmartUpload mySmartUpload =new SmartUpload();


long file_size_max=4000000;


String fileName2=¡±¡±,ext=¡±¡±,testvar=¡±¡±;


String url=¡±uploadfile/images/¡±; //Ó¦±£Ö¤ÔÚ¸ùĿ¼ÖÐÓдËĿ¼µÄ´æÔÚ


//³õʼ»¯


mySmartUpload.initialize(pageContext);


//Ö»ÔÊÐíÉÏÔØ´ËÀàÎļþ


try {


mySmartUpload.setAllowedFilesList(¡°jpg,gif¡±);


//ÉÏÔØÎļþ


mySmartUpload.upload();


} catch (Exception e){


%>


<SCRIPT language=java script>


alert(¡°Ö»ÔÊÐíÉÏ´«.jpgºÍ.gifÀàÐÍͼƬÎļþ¡±);


window.location=¡±upfile.jsp¡±;



<%


}


try{



com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);


if (myFile.isMissing()){%>


<SCRIPT language=java script>


alert(¡°ÇëÏÈÑ¡ÔñÒªÉÏ´«µÄÎļþ¡±);


window.location=¡±upfile.jsp¡±;



<%}


else{


//String myFileName=myFile.getFileName(); //È¡µÃÉÏÔصÄÎļþµÄÎļþÃû


ext= myFile.getFileExt(); //È¡µÃºó׺Ãû


int file_size=myFile.getSize(); //È¡µÃÎļþµÄ´óС


String saveurl=¡±¡±;


if(file_size


//¸ü¸ÄÎļþÃû£¬È¡µÃµ±Ç°ÉÏ´«Ê±¼äµÄºÁÃëÊýÖµ


Calendar calendar = Calendar.getInstance();


String filename = String.valueOf(calendar.getTimeInMillis());


saveurl=request.getRealPath(¡°/¡±)+url;


saveurl+=filename+¡±.¡±+ext; //±£´æ·¾¶


myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);


//out.print(filename);


//¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨CÉÏ´«Íê³É£¬¿ªÊ¼Éú³ÉËõÂÔͼ¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª-


java.io.File file = new java.io.File(saveurl); //¶ÁÈë¸Õ²ÅÉÏ´«µÄÎļþ


String newurl=request.getRealPath(¡°/¡±)+url+filename+¡±_min.¡±+ext; //еÄËõÂÔͼ±£´æµØÖ·


Image src = javax.imageio.ImageIO.read(file); //¹¹ÔìImage¶ÔÏó


float tagsize=200;


int old_w=src.getWidth(null); //µÃµ½Ô´Í¼¿í


int old_h=src.getHeight(null);


int new_w=0;


int new_h=0; //µÃµ½Ô´Í¼³¤


int tempsize;


float tempdouble;


if(old_w>old_h){


tempdouble=old_w/tagsize;


}else{


tempdouble=old_h/tagsize;


}


new_w=Math.round(old_w/tempdouble);


new_h=Math.round(old_h/tempdouble);//¼ÆËãÐÂͼ³¤¿í


BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);


tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //»æÖÆËõСºóµÄͼ


FileOutputStream newimage=new FileOutputStream(newurl); //Êä³öµ½ÎļþÁ÷


JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);


encoder.encode(tag); //½üJPEG±àÂë


newimage.close();



}


else{


out.print(¡°<SCRIPT language=¡±java script¡±>¡±);


out.print(¡°alert(¡±ÉÏ´«Îļþ´óС²»Äܳ¬¹ý¡±+(file_size_max/1000)+¡±K¡±);¡±);


out.print(¡°window.location=¡±upfile.jsp;¡±¡±);


out.print(¡°¡±);


}


}


}catch (Exception e){



e.toString();



}


%>



2 upload.htm




</strong><strong>ÇëÑ¡ÔñÉÏ´«µÄͼƬ









ÇëÑ¡ÔñÉÏ´«µÄͼƬ



ÉÏ´«¡±>





¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª-


6.HTMLÖеıí±êÇ©



¡°http://www.w3.org/TR/html4/loose.dtd¡±>





</strong><strong>ÎÞ±êÌâÎĵµ



<script language=¡±java script¡±>


var count;


function add()


{


count=document.all.mytable.rows.length;


var mtr=document.all.mytable.insertRow(count-1);



var mtd=mtr.insertCell();


mtd.innerHTML=¡±¡±;


mtd=mtr.insertCell();


mtd.innerHTML=¡±¡±;


}



function del(a)


{


document.all.mytable.deleteRow(a.rowIndex);


}



















Ôö¼Ó¡± onClick=¡±add()¡±>






1: JAVA ÖÐÔõôʵÏÖ¶àÏß³Ì



µ¥ºËCPUÀ´ÓöàÏ̵߳ķ½Ê½À´¼ÆËã1¼Óµ½100000ºÍÓõ¥Ï̵߳ķ½Ê½¼ÆËãÄǸöºÃЩÄØ£¿


£¨¿ÉÒÔʹÓöàÏß³ÌÀ´Êä³ö10000¸östringÀàÐ͵ĺ͵¥Ïß³ÌÏà±Èʱ¼äÉϵÄÇø±ð£©



2: Ôõô¶Áд¶þ½øÖÆÎļþ£¿



3£º StatementºÍPreparedStatementµÄÇø±ðºÍÁªÏµ£¿



public interface Statement


The object used for executing a static SQL statement and returning the results it produces.



By default, only one ResultSet object per Statement object can be open at the same time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects. All execution methods in the Statement interface implicitly close a statment¡¯s current ResultSet object if an open one exists.






public interface PreparedStatementextends StatementAn object that represents a precompiled SQL statement.



A SQL statement is precompiled and stored in a PreparedStatement object. This object can then be used to efficiently execute this statement multiple times.



Note: The setter methods (setShort, setString, and so on) for setting IN parameter values must specify types that are compatible with the defined SQL type of the input parameter. For instance, if the IN parameter has SQL type INTEGER, then the method setInt should be used.



If arbitrary parameter type conversions are required, the method setObject should be used with a target SQL type.



In the following example of setting a parameter, con represents an active connection:



PreparedStatement pstmt = con.prepareStatement(¡°UPDATE EMPLOYEES


SET SALARY = WHERE ID = ¡±);


pstmt.setBigDecimal(1, 153833.00)


pstmt.setInt(2, 110592)



4. JAVA¶ÔÏóµÄ´´½¨¹ý³Ì£¿


1£©¡¢Ê×ÏÈΪ¶ÔÏó·ÖÅäÄÚ´æ¿Õ¼ä


»ù±¾Êý¾ÝÀàÐͳÉÔ±ÉèÖÃΪĬÈÏÖµ£¬ÆäÖÐbooleanÀàÐÍΪfalse£¬ÕûÊýÀàÐÍΪ0СÊýΪ0.0£»ÒýÓÃÀàÐÍΪnull


2£©¡¢È»ºóÖ´ÐÐÏÔʽ³õʼ»¯£¬¼´Ö´ÐÐÔÚÀà³ÉÔ±ÉùÃ÷ʱ´øÓеļòµ¥¸³Öµ±í´ïʽ


¸¸Àྲ̬³ÉÔ±->×ÓÀྲ̬³ÉÔ±->¸¸Àà·Ç¾²Ì¬³ÉÔ±->×ÓÀà·Ç¾²Ì¬³ÉÔ±


3£©¡¢Ö´Ðй¹Ôì·½·¨£¬½øÐжÔÏó³õʼ»¯¡£


¸¸À๹Ô캯Êý->×ÓÀ๹Ô캯Êý


Çë²Î¿¼JAVA±à³Ì˼Ïë


5£º AJAXÖ¡ÓëXML http µÄʵÏÖ·½Ê½£¿¡¶¡±AJAXÖ¡¡±ÍøÉÏÕÒ²»µ½¡·


JAVAÖ¡£ºÊ¹ÓÃÒ»¸öÒþ²ØµÄframe/iframe£¬Ö÷Ò³Ãæ·¢ËÍÇëÇóʱ£¬Ö¸¶¨·µ»ØÒ³ÃæΪ¸ÃÒþ²ØÖ¡£¬ÕâÑù£¬Õû¸öÒ³Ãæ¾Í²»»á±»Ë¢Ð£¬È»ºó£¬Ö÷Ò³Ãæµ½Òþ²ØÖ¡ÖÐȥȡµÃ·µ»ØµÄÊý¾Ý²¢½øÐд¦Àí¼´¿É¡£Ìص㣺ֻÐèä¯ÀÀÆ÷Ö§³ÖHTML 4¼´¿É£¬²»ÐëActiveXÖ®ÀàµÄÖ§³Ö; ¿ÉÒÔά»¤ä¯ÀÀÆ÷ÀúÊ·£¬Óû§ÈÔÈ»¿ÉÒÔʹÓÃä¯ÀÀÆ÷ÉϵĺóÍ˺ÍÇ°½ø°´Å¥¡£


XML HTTP£º ÓÃjava scriptÀ´´´½¨XMLHttpRequest ÀàÏò·þÎñÆ÷·¢ËÍÒ»¸öHTTPÇëÇ󣬵±ÊÕµ½·þÎñÆ÷µÄÏìÓ¦ºó£¬ÓÃjava script°ó¶¨ºÍ´¦ÀíËùÓÐÊý¾Ý¡£ËüÊÇÒ»ÖÖÖ§³ÖÒì²½ÇëÇóµÄ¼¼Êõ



6£º Ê®ÍòÌõÊý¾ÝÓÃʲô·½·¨·ÖÒ³£¿ ORACLE && MYSQL


Oracle ʹÓà rownum


Mysql ʹÓà limit


Sql server ʹÓÃtop



¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºASP.NET±ÊÊÔÌâС»ã×Ü ÏÂһƪ£º½éÉÜÒ»ÏÂXMLHttpRequest¶ÔÏó

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿