ÓÃSTRUTSʵÏÖ¹ú¼Ê»¯
|
Ò»£®JSPÒ³Ãæ²¿·Ö 1. Ò³ÃæÎÄ×Ö´¦Àí 1.1¸ÅÊö ÓÉÓÚSTRUTSÌṩÁ˺ܺõĹú¼Ê»¯µÄÖ§³Ö£¬Òò´ËJSPÒ³Ãæ¿ÉÒÔSTRUTSµÄÕâÒ»ÌØÐÔ×öµ½¹ú¼Ê»¯¡£ STRUTSÔÊÐí½«²»Í¬ÓïÑÔµÄÎÄ×ÖдÔÚ¶à¸ö×ÊÔ´ÎļþÖУ¬Ã¿¸ö×ÊÔ´¶ÔÓ¦Ò»ÖÖÓïÑÔ£¬¶øÔÚJSPÒ³ÃæÉÏÔòͨ¹ýSTRUTS±êÇ©À´ÏÔʾÎÄ×Ö£¬¸Ã±êÇ©¿ÉÒÔ¸ù¾Ýä¯ÀÀÆ÷µÄµ±Ç°ÓïÑÔÉèÖÃÈ·¶¨´Ó¶ÔÓ¦µÄÓïÖÖ×ÊÔ´ÎļþÖÐÈ¡³ö×Ö·û´®£¬ÏÔʾÔÚÒ³ÃæÉÏ¡£ 1.2×ÊÔ´Îļþ ʵÏÖ¹ú¼Ê»¯£¬Ê×ÏÈÐèҪ׼±¸ºÃ×ÊÔ´Îļþ£¬ÐèÒªÖ§³ÖµÄÓïÑÔ¸÷¶ÔÓ¦Ò»¸ö¡£×ÊÔ´ÎļþÒ»¶¨ÒªÓÃÖ§³Ö¶à¹úÓïÑÔÎÄ×ÖµÄÎı¾±à¼Æ÷£¨ÈçWORD£¬Ò»¶¨²»ÄÜÓÃNOTEPAD¡¢UEµÈ£©±àд£¬Æä¸ñʽÈçÏ£º # Project international index.title=XXÐÅϢϵͳ index.copyright=XXXÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ ÆäÖÐÒÔ#¿ªÍ·µÄÐÐÊÇ×¢ÊÍ£¬ÆäËüµÄÐж¼ÊÇKEY=VALUEµÄÐÎʽ£¬¶¨ÒåÁËÒ»¸öKEY¶ÔÓ¦µ±Ç°ÓïÑÔϵÄÎÄ×Ö¡£±£´æ×ÊÔ´Îļþʱ£¬ÐèÒªÔÚÎļþÀàÐÍÑ¡ÏîÖÐÑ¡Ôñ´¿Îı¾ÀàÐÍ£¬±àÂëÑ¡ÔñÆäËü>>UTF-8£¬×¢Òâ×ÊÔ´ÎļþµÄÀ©Õ¹ÃûΪ.properties£¬ÎļþÃû¿ÉÒÔÈÎÒâÈ¡¡£ ÕâÑù±£´æµÄ×ÊÔ´Îļþ»¹²»ÄÜÖ±½Ó±»STRUTSʹÓã¬JDKÌṩÁËÒ»¸ö¹¤¾ßnative2ascii¶Ô±àдµÄ×ÊÔ´Îļþ½øÐÐת»»£¬¸Ã¹¤¾ßλÓÚ%JDK% /bin/Ŀ¼Ï£¬Ò»°ãÔÚJDKÕýÈ·°²×°ºó¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐʹÓá£Ê¹ÓÃnative2ascii¹¤¾ßת»»µÄ×ÊÔ´µÄÎļþµÄÃüÁîÐиñʽÈçÏ£º native2ascii -encoding UTF-8 ApplicationResources.properties ApplicationResources_zh_CN.properties ÆäÖÐ-encoding²ÎÊýÖ¸Ã÷±àдµÄ×ÊÔ´ÎļþµÄ±àÂë¸ñʽ£¬ÕâÀï±ØÐëÓë±à¼Ê±Ñ¡Ôñ±£´æµÄ±àÂë¸ñʽһÖ£¬ºóÃæÁ½¸ö²ÎÊý·Ö±ðÊÇÐèҪת»»µÄ×ÊÔ´ÎļþÃûºÍת»»ºó±£´æµÄ×ÊÔ´ÎļþÃû¡£ ת»»ºóµÄ×ÊÔ´ÎļþÃû¶¼±ØÐëÒÔÒ»¸öÌØ¶¨µÄǰ꡿ªÍ·£¬¸Ãǰê¡Ð´ÔÚstruts-config.xmlÅäÖÃÖУ¬ºóê¡ÊǶÔÓ¦ÓïÑԵļò³Æ£¬Èç Ó¢ÎÄ(ÃÀ¹ú) ApplicationResources _en_US.properties ÖÐÎÄ£¨¼òÌ壩ApplicationResources _zh_CN.properties ÖÐÎÄ£¨·±Ì壩ApplicationResources _tw.properties Ì©Óï ApplicationResources _th.properties ×ÊÔ´ÎļþµÄ´æ·ÅĿ¼¿ÉÒÔÊÇ/WEB-INF/classes/ϵÄÈÎÒâĿ¼£¬ÎªÁ˱ãÓÚ¹ÜÀí £¬½¨ÒéÔÚ/WEB-INF/ classes/Ͻ¨Á¢Ä¿Â¼resources£¬½«ËùÓеÄ×ÊÔ´Îļþ¶¼·ÅÔÚ¸ÃĿ¼Ï¡£STRUTSͨ¹ýÅäÖÃÎļþstruts-config.xmlÅäÖÃ×ÊÔ´ÎļþµÄËùÔÚλÖã¬È磺 ÆäÖÐĿ¼ÒÔ°üµÄ·½Ê½±íʾ¡£ 1.3 JSPÒ³ÃæÏÔʾ ΪÁËÖ§³Ö¹ú¼Ê»¯£¬JSPÒ³ÃæµÄ±àÂ뷽ʽÐèÒªÉè³ÉUTF-8£¬¼´ÔÚÒ³ÃæµÄÍ·²¿¼ÓÈëÒÔϼ¸ÐУº <%@ page contentType="text/html; charset=UTF-8" %> ¡¡£¨STRUTS¼°ÆäËü±êÇ©¿âÒýÓã© JSPÒ³ÃæµÄÖÐÎÄ×ÖҪȫ²¿Ð´µ½×ÊÔ´ÎļþÖУ¬×¢ÒâÿÖÖÓïÑÔ×ÊÔ´Îļþ¶¼ÒªÐ´µ½£¬·ñÔòÔÚʹÓÃijÖÖÓïÑÔ·ÃÎÊϵͳʱ¿ÉÄܻᱨ´í¡£JSPÖÐʹÓÃSTRUTS±êÇ©ÏÔʾ×ÊÔ´ÎļþÖж¨ÒåµÄ×Ö·û´®¡£ÕâÑùµ±¸Ä±ää¯ÀÀÆ÷µÄµ±Ç°ÓïÑÔºó£¬Ò³Ãæ»á×Ô¶¯È¡µÃÓëä¯ÀÀÆ÷µ±Ç°ÓïÑÔ¶ÔÓ¦µÄ×ÊÔ´ÎļþÖеÄ×Ö·û´®ÏÔʾÔÚÒ³ÃæÉÏ¡£ ¶ÔÓÚÔÚACTIONµÄJAVA´úÂëÖÐÖ±½ÓÉèÖõıäÁ¿£¬ÈçÐèÒªÔÚJSPÒ³ÃæÉϽøÐÐÏÔʾ£¬ÄÇôÔÚÉèÖñäÁ¿Ê±Ò²ÐèÒª´Ó×ÊÔ´ÎļþÖÐͨ¹ýKEYÈ¡µ½µ±Ç°ÓïÑÔµÄ×Ö·û´®£¬ÔÙʹÓÃrequest.setAttribute·½·¨½øÐÐÉèÖã¬ÕâÑùÔÚJSPÒ³ÃæÉÏʹÓñêǩչÏÖÉèÖõıäÁ¿²Å»á¶ÔÓ¦²»Í¬µÄÓïÑÔ»á³ÊÏÖ²»Í¬µÄ×Ö·û´®¡£ ÔÚJAVA´úÂëÖÐÈ¡×ÊÔ´ÎļþµÄÐÅÏ¢µÄ·½·¨ÊÇ£¬Ê×ÏÈͨ¹ýGlobals.MESSAGES_KEY´Órequest»òsession±äÁ¿ÖÐÈ¡µÃ×ÊÔ´¶ÔÏó£¨MessageResources£©£¬ÔÙµ÷ÓÃMessageResources.getMessage·½·¨¼´¿ÉÈ¡µÃÏàÓ¦µÄ×Ö·û´®£¬¸Ã·½·¨ÐèµÄÁ½¸ö²ÎÊýÊǵ±Ç°ÓïÑÔÇøÓòÉèÖã¨Locale£©ºÍ×Ö·û´®µÄKEY£¬ÆäÖе±Ç°ÓïÑÔÇøÓòÉèÖã¨Locale£©±£´æÔÚSESSION±äÁ¿ÖУ¬Æä±äÁ¿ÃûΪ Globals.LOCALE_KEY£¬¸Ã±äÁ¿ÔÚÏÂÒ»½ÚÊÖ¹¤ÉèÖÃÓïÑÔʱҲÓÐÌáµ½¡£ 1.4ÊÖ¹¤ÉèÖÃÏÔʾÓïÑÔ ÓÃä¯ÀÀÆ÷µÄÓïÑÔÉèÖÃÀ´¾ö¶¨ÏµÍ³²ÉÓÃÄÄÖÖÓïÑÔÕ¹ÏÖ¿ÉÄÜ»á³öÏÖÒ»¸öÎÊÌ⣬¾ÍÊÇÓû§µÄä¯ÀÀÆ÷ÓïÑÔÓëËûÏëҪʹÓÃϵͳµÄÓïÑÔ²»Ò»ÖµÄÇé¿ö£¬Èçij¿Í»§ä¯ÀÀÆ÷µÄÓïÑÔÉèÖÃΪӢÎÄ£¬µ«Ëû»¹ÊÇÔÚʹÓÃÖ÷վϵͳʱ¿´µ½µÄÊÇÖÐÎĽçÃæ¡£¸ÃÎÊÌâ¿ÉÒÔͨ¹ýÊÖ¹¤Ñ¡ÔñÓïÑÔÀ´½â¾ö£¬ÔÚ³ÌÐòÖпÉÒÔͨ¹ýÉèÖÃÃûΪ Globals.LOCALE_KEY£¨Globals.LOCALE_KEY ÊÇ strutsµÄ³£Á¿£©µÄSESSION±äÁ¿£¬Ò²ÄܸıäϵͳÖе±Ç°ÓïÑÔµÄÉèÖ㬴úÂëÀàËÆÓÚ£º Locale newLocale = new Locale( language, country ); session.setAttribute( Globals.LOCALE_KEY, newLocale ); ÆäÖбäÁ¿language, country ¿ÉÒÔͨ¹ýÓû§µÄÑ¡ÔñÉèÖÃÏàÓ¦µÄÖµ£¬¸÷ÖÖÓïÑԵĶÔÓ¦Öµ²Î¿¼http://www.unicode.org/unicode/onlinedat/countries.html¡£ 2. ´øÓÐÎÄ×ÖµÄͼƬ´¦Àí 2.1¾²Ì¬Í¼Æ¬ ´øÓÐÎÄ×ÖµÄͼƬӦ¸ÃÒ²Òª¸ù¾ÝÓïÑԵIJ»Í¬¶øÏÔʾ²»Í¬µÄͼƬ£¬µ«Í¼Æ¬±¾Éí²»ÊÇÎı¾ÐÅÏ¢£¬ÎÞ·¨Ö±½ÓÓñêÇ©À´Íê³É¹ú¼Ê»¯²Ù×÷¡£µ«ÓÉÓÚÒ³ÃæÉÏÏÔʾͼƬȡ¾öÓÚ±êÇ©µÄsrcÊôÐÔ£¬Òò´Ë¿ÉÒÔΪÿ¸öͼƬ¶ÔÓ¦¸÷ÖÖÓïÑԵͼ׼±¸Ò»¸ö°æ±¾£¬ÎļþÃû»ò·¾¶ÓÐËù²îÒ죬Ȼºó½«Ã¿ÖÖÓïÑÔ¶ÔÓ¦µÄͼƬµÄ·¾¶¼°ÎļþÃû·ÅÔÚ×ÊÔ´ÎļþÖУ¬¶øÔÚJSPÒ³ÃæÉϱêÇ©µÄsrcÊôÐÔÓɱêǩָ¶¨£¬ÕâÑù¼´¿ÉÒÔÍê³ÉͼƬµÄ¹ú¼Ê»¯¡£ 2.2 JAVAÉú³É¶¯Ì¬Í¼Æ¬ ÓÉÓÚÉú³É¶¯Ì¬Í¼Æ¬ÊÇÔÚ·þÎñÆ÷¶Ë½øÐУ¬Òò´ËͬÑùÐèÒª½«Éú³ÉͼÐÎ×Ö·ûµÄ¾²Ì¬²¿·Ö·ÅÔÚ×ÊÔ´ÎļþÖУ¬ÈçͼÐÎÃû³ÆµÈ£¬´Ó×ÊÔ´ÎļþÖÐÈ¡×Ö·û´®µÄ·½·¨ÔÚJSPÒ³ÃæÏÔʾ²¿·ÖÒÑÓÐ˵Ã÷£»´ÓÊý¾Ý¿âÖÐÈ¡³öµÄ²¿·Ö¿ÉÒÔ²»ÓÃ×öÈκδ¦Àí£¬Ö±½Ó´ÓÊý¾Ý¿âÈ¡³öÓ뾲̬²¿·ÖÆ´×°³ÉͼÐÎ×Ö·û´®¼´¿É£¬Êý¾Ý¿âÏà¹ØÉèÖÃÔÚÊý¾Ý¿â²¿·ÖÓÐÏêϸ˵Ã÷¡£ 3. Ò³ÃæÌá½»²ÎÊý´¦Àí Ò³ÃæÉÏÏòWEB·þÎñÆ÷Ìá½»²ÎÊýÓÐÁ½ÖÖ·½Ê½£¬Ò»ÊÇÔÚ·ÃÎÊURLºóÃæ¸½¼ÓÉÏrequest±äÁ¿£¬ÕâÑùµÄ±äÁ¿ÔÚ·þÎñÆ÷¶Ë¿ÉÒÔͨ¹ý request.getParameter·½·¨µÃµ½£¬ÁíÒ»ÖÖ·½Ê½ÊÇÔÚJSPÒ³ÃæÉÏÓÃFORM±íµ¥·½Ê½Ìá½»£¬ÕâÖÖ·½·¨Ìá½»µÄ±äÁ¿ÔÚ·þÎñÆ÷¶Ë¿ÉÒÔͨ¹ýform µÄgetXXX·½·¨È¡µ½±äÁ¿µÄÖµ¡£ µ±WEBϵͳÐèÒª¹ú¼Ê»¯Ê±£¬JSPÒ³ÃæµÄ±àÂ뷽ʽ±»Ö¸¶¨ÎªUTF-8£¨Ç°ÃæÒÑÓÐ˵Ã÷£©£¬Ò²¾ÍÊÇËµÒ³ÃæÉÏ¿ÉÒÔ´¦Àí¸÷¹úÎÄ×Ö£¬ÔÚʹÓÃURL´«µÝ±äÁ¿Ê±ÐèÒª½«±äÁ¿ÓÃJS·½·¨encodeURI·½·¨´¦Àí¹ý£¬²ÅÄÜÔÚ·þÎñÆ÷¶ËµÃµ½ÕýÈ·µÄÖµ£¬Èç location.href="int/do/common/queryUserInfo.do?sqlcode=QUERY0001&hh="+encodeURI(document.all.hh.value)+"&hm="+encodeURI(document.all.hm.value)+"&bmbh="+encodeURI(document.all.bmbh.value); ÓÉÓÚÕâÖÖ·½Ê½ÐèÒª¶Ôÿ¸örequest±äÁ¿µ÷ÓÃencodeURI·½·¨£¬´¦ÀíÆðÀ´±È½ÏÂé·³£¬µ«ÓÃFORM±íµ¥Ìá½»µÄ·½Ê½¼´²»ÐèÒª½øÐÐÈκδ¦Àí£¬Òò´ËÔÚ¿ª·¢Ê±Ó¦¾¡Á¿Ê¹ÓÃFORM±íµ¥Ìá½»µÄ·½Ê½½øÐÐÊý¾Ý´«µÝ¡£ Èç¹ûÐèÒªJAVA´úÂëÖÐÉú³ÉURL£¬ÔòÆäÖд«µÝµÄ²ÎÊýÒ²ÐèÒªµ÷ÓÃURLEncoder.encode·½·¨½øÐд¦Àí£¬²¢Ö¸¶¨±àÂ뷽ʽΪ"UTF-8"¡£ ÔÚ·þÎñÆ÷¶ËÈ¡µÃ¿Í»§¶Ë´«µÝµÄ²ÎÊýʱҲÐèÒª¶Ô²ÎÊý½øÐÐ×Ö·û¼¯µÄת»»ºó²Å¿ÉÒÔÏÂȷʹÓã¬Èç strString = new String(strString.getBytes("ISO-8859-1"), "GBK")£» µ«Èç´Ë¶Ôÿ¸ö±äÁ¿¶¼ÐèÒªÕâÑù´¦ÀíÒ²ÊǷdz£Âé·³£¬Êµ¼ÊÉÏ¿ÉÒÔÀûÓÃservletµÄFilter»úÖÆ½øÐÐͳһ´¦Àí¡£ÔÚµ÷ÓÃservlet£¨°üÀ¨struts£©Ê±£¬ÔÚµ½´ïʵ¼ÊµÄservletÀàǰ£¬»áÊ×Ïȵ÷ÓÃÖ¸¶¨µÄFilter½øÐд¦Àí£¬Filter´¦ÀíÍê³ÉºóÔÙ¾ö¶¨ÊÇ·ñ½»¸øÊµ¼ÊÇëÇóµÄservletÀà´¦Àí¡£ ÀûÓÃÕâÒ»µã£¬ÎÒÃÇ¿ÉÒÔн¨Ò»¸öÀà¼Ì³Ð×ÔFilter»ùÀà£¬ÖØÔØdoFilter·½·¨£¬²¢Ôڸ÷½·¨ÖмÓÈë request.setCharacterEncoding(¡°UTF-8¡±); Ö¸¶¨¿Í»§¶ËµÄ×Ö·û¼¯ÎªUTF-8£¨Ä¬ÈϿͻ§¶ËµÄ×Ö·û¼¯ÎªISO8859£©£¬ÕâÑùÔÚACTIONÀàÖÐÈ¡µÃµÄ²ÎÊý¾Í²»ÐèÒª½øÐÐÈκεÄת»»´¦ÀíÁË¡£ ÅäÖÃFilterµÄµØ·½ÔÚweb.xml£¬ÔÚweb.xmlÎļþÖмÓÈëÀàËÆÕâÑùµÄÅäÖü´¿ÉÒÔʹ×Ô¶¨ÒåµÄFilterÉúЧ£º charsetfilter international.CharsetFilter encoding UTF-8 charsetfilter /* ¶þ£®Êý¾Ý¿âÉèÖà ÔÚÊý¾Ý¿â½¨¿âʱÐèÒª½«Êý¾Ý¿âµÄ×Ö·û¼¯Ö¸¶¨Îªunicode±àÂëÀàÐÍ£¬ÒÔÖ§³Ö¶àÖÖÓïÑÔ¡£ |
