Õ¾ÄÚËÑË÷: ÇëÊäÈëËÑË÷¹Ø¼ü´Ê

µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú Java רÌâ ¡ú ͨ¹ýStrutsÓ¦ÓÃMVCÉè¼ÆÄ£ÐÍ

ͨ¹ýStrutsÓ¦ÓÃMVCÉè¼ÆÄ£ÐÍ

ÕªÒª: Ä£ÐÍ--ÊÓͼ--¿ØÖÆÆ÷£¨Model-View-Controller£¬MVC£©Ìåϵͻ³öÁËServletsºÍJSPµÄÓŵ㣬ͬʱҲÁîËüÃǵÄȱµã×îС»¯
¡¡¡¡Ä£ÐÍ--ÊÓͼ--¿ØÖÆÆ÷£¨Model-View-Controller£¬MVC£©Ìåϵͻ³öÁËServletsºÍJSPµÄÓŵ㣬ͬʱҲÁîËüÃǵÄȱµã×îС»¯¡£ÔÚʵÏÖÖУ¬Óû§ÇëÇó±»·¢Ë͵½Ò»¸ö¿ØÖÆÆ÷servlet£¬¸Ãservlet¾ö¶¨ÇëÇóµÄÐÔÖÊ£¬²¢ÇÒ¸ù¾ÝÇëÇóµÄÀàÐÍ´«Ë͸øÊʺϵĴ¦ÀíÆ÷¡£Ã¿¸ö´¦ÀíÆ÷¶¼ºÍÒ»¸öÌرðµÄÄ£ÐÍÏà¹Ø£¬ÀïÃæ·â×°ÓÐÉÌÒµÂß¼­À´Ö´ÐÐһЩÌرðµÄº¯Êý¼¯ºÏ¡£´¦ÀíÍê±Ïºó£¬½á¹û»á·¢Ëͻش¦ÀíÆ÷£¬´¦ÀíÆ÷Ñ¡ÔñÊʺϵÄÊÓͼÏÔʾËü¡£

¡¡¡¡Struts×îÔçÓÚ2002Äê5ÔÂ×÷ΪJakartaÏîÄ¿µÄ×é³É²¿·ÖÎÊÊÀ£¬JakataÏîÄ¿ÓÉApache Foundation.ÔË×ö¡£ÏîÄ¿µÄ´´Á¢ÕßÏ£Íû¸ÃÏîÄ¿µÄÑо¿¸Ä½øºÍÌá¸ßJava Server Pages (JSPs)¡¢servlet¡¢±êÇ©¿âÒÔ¼°ÃæÏò¶ÔÏóµÄ¼¼ÊõË®×¼¡£StrutsΪʹÓÃMVCÌåϵÀ´±àдӦÓÃÌṩÁËÒ»¸ö¼Ü¹¹¡£StrutsʹÓá°ActionMapping¡±£¬ËüÔÊÐíservlet½«Óû§µÄÇëÇóת±äΪӦÓÃÐÐΪ¡£ActionMappingͨ³£Ö¸¶¨Ò»¸öÇëÇóµÄ·¾¶¡¢ÔÚÇëÇóÉϽøÐж¯×÷µÄ¶ÔÏóÀàÐÍ£¬ÒÔ¼°Ö¸¶¨ÆäËüÐèÒªµÄÊôÐÔ¡£

¡¡¡¡Action¶ÔÏó×÷ΪActionMappingµÄÒ»¸ö²¿·ÖʹÓ㬸ºÔð´¦ÀíÇëÇ󣬲¢ÇÒ·¢ËÍÏìÓ¦»ØÊʺϵÄÊÓͼ£¨Í¨³£ÊÇÒ»¸öWebä¯ÀÀÆ÷£©£¬»òÕß´«ËÍÇëÇóÖÁÊʺϵÄÄ£ÐÍ¡£

¡¡¡¡ÔÚÄ£ÐͺÍÊÓͼ¼äµÄÇÅÊÇÒ»¸öform bean£¬Ëü¿ÉÒÔͨ¹ý¼Ì³Ðorg.apache.struts.action.ActionFormµÃµ½¡£form beanÓÃÀ´±£´æ´¦ÀíÇ°µÄÓû§Êý¾Ý£¬»òÕßÏÔʾ·µ»Ø¸øÓû§µÄÄ£ÐÍÊý¾Ý¡£Struts°üº¬ÓÐ×Ô¶¨ÒåµÄ±êÇ©£¬Ëü¿ÉÒÔÓÉ´´½¨µÄform beanÖÐ×Ô¶¯×éºÏ×ֶΡ£

¡¡¡¡ÔÚʵ¼ùÖÐÓû§ÇëÇóJSPÒ³Ã棬¿ØÖÆÆ÷servlet½ÓÊÕÇëÇó²¢¾ö¶¨ÓÉÄĸöÓ¦Óô¦ÀíËü¡£Action¶ÔÏó´«Ë͸ÃÇëÇóµ½°üº¬ÓнÓÊÕÉÌÒµÂß¼­µÄJavaBeanÖС£ÉÌÒµÂß¼­bean½«Á¬½ÓÊý¾Ý¿â²¢½øÐвéѯ£¬½ÓÊÕ½á¹û£¬È»ºó·µ»Ø½á¹û¸øAction¶ÔÏó¡£Action¶ÔÏ󽫽á¹û×÷ΪÇëÇóµÄÒ»²¿·Ö´æ·Åµ½Ò»¸öform beanÖС£Ò»µ©ÊÕ¼¯ÍêÇëÇóµÄÈ«²¿Êý¾Ý£¬¾Í¿ÉÒÔ¸ñʽ»¯½á¹û²¢ÇÒÏÔʾ¡£×îºóÊÇJavaServer PageÒÔHTML±í¸ñµÄÐÎʽ½«½á¹ûÏÔʾ³öÀ´¡£

¡¡¡¡Ä£ÐÍ£¬¿ØÖÆÆ÷ºÍÊÓͼ

¡¡¡¡StrutsÖеĿØÖÆÆ÷µÄ»ù±¾×é¼þÊÇActionServletÀàÖж¨ÒåµÄservlet£¬ËüÊÇÓÉActionMappings¶¨ÒåµÄ¡£ActionMappingÀà±íʾµÄÊÇAction¶ÔÏóµÄÃû×ÖºÍλÖᣵ±Ò»¸öÇëÇó½øÈë¿ØÖÆÆ÷ʱ£¬Ëü½«ÇëÇóµÄ·¾¶Ó³Éäµ½ActionµÄλÖ㬲¢ÇÒ½«ÇëÇó´«Ë͸øAction¡£StrutsµÄActionMappingÀ໹¿ÉÄÜ°üº¬ÓÐÆäËüµÄÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄÜÖ»ÊÇÓëÄãµÄÓ¦ÓÃÏà¹Ø£¬ÀýÈç±¾µØ±äÁ¿£¬»·¾³±äÁ¿»òÕßÆäËüURIs¡£

¡¡¡¡StrutsµÄ¹Ø¼üÊÇ¿ØÖÆÆ÷ÖÜΧµÄ»î¶¯¡£Struts¿ØÖÆÆ÷servletÓ³Éäʼþµ½Àࣨһ¸öʼþͨ³£ÊÇÒ»¸öHTTP POST, GET£¬»òÕßÀàËƵÄÇëÇ󣩡£ActionServletÊÇMVCÉè¼ÆģР͵Ä˾Á£¬Ò²ÊÇStructs¼Ü¹¹µÄºËÐÄ¡£ActionServlet´´½¨ºÍʹÓÃAction£¬Ò»¸öActionFormºÍActionForward¡£struts-config.xmlÊÇÓÃÀ´ÉèÖÃActionµÄ¡£ÔÚ´´½¨WebÓ¦ÓÃÆڼ䣬²ÉÓÃÀ©Õ¹ActionºÍActionFormÀ´½â¾öÈçºÎÏìÓ¦Óû§ÇëÇóµÄÎÊÌâ¡£struts-config.xmlÔòÊǸæËßActionServletÈçºÎʹÓÃÀ©Õ¹Àà¡£Ò²¿ÉÀ©Õ¹ActionServletÒÔÁîStructsÓ¦ÓôøÓÐһЩ×Ô¶¨ÒåµÄÌØÐÔ¡£

¡¡¡¡Õâ¸ö·½·¨Óм¸¸öÓŵ㡣Ê×ÏÈ£¬Ó¦ÓõÄÕû¸öÂß¼­Á÷¶¼ÊÇÔÚÒ»¸ö·ÖµÈ¼¶µÄÎı¾ÎļþÖС£ÕâÑù¾Í¿ÉÒԱȽÏÈÝÒ׵ز鿴¡¢Àí½âÓ¦Óã¬ÌرðÊÇ´óµÄÓ¦Óᣵڶþ£¬±àдÍøÒ³µÄÈËÔÚÐÞ¸ÄÍøҳʱ¾ÍÎÞÐè±éÀúJava´úÂëÀ´Àí½âÓ¦ÓõÄÁ÷³Ì£¬¶øJava¿ª·¢ÕßÔڸıäÁ÷³ÌµÄʱºòÒ²ÎÞÐèÖØбàÒë´úÂë¡£

¡¡¡¡ActionFormΪWebÓ¦ÓÃά»¤session״̬¡£ActionFormÊÇÒ»¸ö³éÏóÀ࣬Ëü¿ÉÒÔ±»Ã¿¸öÊäÈë±í¸ñÄ£ÐÍÀ©Õ¹¡£Ëü´ú±íÊý¾ÝµÄÒ»°ã¸ÅÄ¿ÉÒÔ±»HTML±í¸ñÉèÖûòÕ߸üС£ÀýÈ磬ÄãµÄÓ¦ÓÃÒ²ÐíÓµÓÐÒ»¸ö±»HTML±í¸ñÉèÖõÄUserActionForm¡£StrutsµÄ¼Ü¹¹½«¼ì²éUserActionFormÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬¾Í»á´´½¨Ò»¸ö¸ÃÀàµÄʵÀý¡£Structs½«»áʹÓÃHttpServletRequestµÄÏàÓ¦×Ö¶ÎÀ´ÉèÖÃUserActionFormµÄ״̬¡£ÔÚ´«ËÍUserActionForm¸øÉÌÒµ·â×°²ãµÄUserActionÇ°£¬Struct¼Ü¹¹ÏȸüÐÂUserActionFormµÄ״̬¡£

¡¡¡¡StructsÄ£ÐÍ°üº¬ÓÐϵͳµÄ״̬ºÍËü¿ÉÒÔ½ÓÊܵIJÙ×÷¡£¿ÉÒÔʹÓø÷ÖÖ¸÷ÑùµÄ½á¹¹À´±íʾģÐÍ£¨ÀýÈçÆäËüservlets»òÕßJSP£©£¬²»¹ýÔÚ´ó¶àÊýµÄʱºòÄ㶼»áʹÓÃJavaBeans¡£JavaBeanµÄÊôÐÔ£¬»òÕßÔÚEnterprise JavaBeans (EJBs)ÖÐÓÉÍⲿÊý¾ÝÔ´µÃµ½µÄÊý¾Ý--±íʾµÄÊÇ״̬£¬¶ø·½·¨ÔòÊDZíʾ¿ÉÒÔÔÚÉÏÃæ½øÐеIJÙ×÷¡£²Ù×÷²¢²»ÐèÒª±»JavaBean·½·¨¶¨Ò壻ÔÚ¼òµ¥µÄÇé¿öÏ£¬²Ù×÷¿ÉÒÔ·ÅÖõ½Action¶ÔÏóÖУ¬ËäÈ»ÕâÑù»áÁî´¦ÀíºÍ·Ö¼¶Ö®¼äµÄÇø±ð±äµÃÄ£ºý¡£

¡¡¡¡Struts MVCÓ¦ÓõÄÊÓͼͨ³£ÓÉJSP¹¹Ô죬Ëü¿ÉÒÔʹÓÃHTML»òÕßXML¾²Ì¬¸ñʽ»¯Ò³Ã棬»¹ÌṩÁËÒ»¸ö·½·¨¿É¶¯Ì¬²åÈë×Ô¶¨ÒåµÄÄÚÈÝÀ´ÏìÓ¦Óû§µÄÇëÇó¡£StructsµÄÒ»¸ö¹Ø¼üÊÇËüµÄ×Ô¶¨Òå±êÇ©¿â£¬ËüÌṩÁËÒ»¸ö·½·¨£¬¿ÉÒÔºÜÈÝÒ×µØʹÓÃJSPÀ´´´½¨Óû§½çÃæ¡£

¡¡¡¡Structs¼Ü¹¹°üº¬ÓÐ×Ô¶¨ÒåµÄ±êÇ©¿â£¬¿ÉÒÔͨ¹ý¸÷ÖÖ²»Í¬µÄ·½Ê½Ê¹Óá£ËäÈ»¾ÍʹÓøüܹ¹À´Ëµ£¬ÕâЩ¿â²¢²»ÊDZØÐëµÄ£¬²»¹ýËüÃÇ°üº¬µÄ±êÇ©ÔÚÄãµÄÓ¦ÓõÄÐí¶àµØ·½¶¼ºÜÓÐÓá£StructsµÄһЩ±êÇ©¿â°üÀ¨ÓУº

¡¡¡¡. structs-html±êÇ©¿â¡£¸Ã¿â¿ÉÒÔÓÃ×÷´´½¨¶¯Ì¬HTMLÓû§½çÃæ»òÕß±í¸ñ¡£

¡¡¡¡. structs-bean±êÇ©¿â¡£¶ÔÓÚ½«JavaBean´úÂë·Åµ½JSPÒ³Ã棬¸Ã¿âÌṩÁËÒ»¸ö¼ÓÇ¿·½Ê½£¬Í¨¹ý<?xml:namespace prefix = jsp /> ±êǩʵÏÖ¡£

¡¡¡¡. struts-logic±êÇ©¿â¡£¸Ã¿â¿ÉÒÔ¹ÜÀíÓÐÌõ¼þµØ²úÉúÊä³öÎı¾£¬±éÀú¶ÔÏócollectionsÒÔÖظ´µØ²úÉúÊä³öÎı¾£¬»¹ÓÐÓ¦ÓÃÁ÷¿ØÖÆ¡£

¡¡¡¡. struts-template±êÇ©¿â¡£¸Ã¿â°üº¬µÄ±êÇ©¿ÉÓÃ×÷ΪҳÃæ´´½¨¶¯Ì¬µÄJSPÄ£°å£¬ÕâЩҳÃ涼ӵÓÐÒ»¸ö¹«¹²µÄÍâ¹Û»òÕß¹«Í¬µÄ¸ñʽ¡£

¡¡¡¡Ê¹ÓÃÕâЩ±êÇ©¿âºÍÆäËüµÄÈκοⶼÊÇÒ»ÑùµÄ¡£ÒòΪ¿âÒѾ­Ð´ºÃÁË£¬ÄãËùÒª×öµÄ¾ÍÊǸæËßservletÒýÇæҪʹÓÃËü¡£ÔÚTomcatÖУ¬Äã¿ÉÒÔͨ¹ýweb.xmlÎļþÖеģ¼taglib£¾±êÇ©À´Ö¸¶¨±êÇ©¿âµÄURI£¬ÒÔ¼°Web·þÎñÆ÷ϵͳÉϱêÇ©¿âÃèÊöÎļþµÄλÖá£

¡¡¡¡The Small Print

¡¡¡¡Jakarta¹¤³Ì¿ÉÈÃÄãÏÂÔØStructsµÄ¶þ½øÖÆ°æ±¾£¬»òÕßÖ±½ÓÓÉÔ´´úÂëÖбàÒëËü¡£¶þ½øÖư湤×÷µÃºÜºÃ£¬²»¹ýÈç¹ûÄãÓµÓÐÒ»¸ö²»³£¼ûµÄÈí¼þƽ̨£¬»òÕßÏëѧϰһÏÂÈçºÎ±àÒëËü£¬Ò²²»ÊǺÜÀ§ÄÑ¡£ÎÞÂÛÄãµÄÑ¡ÔñÈçºÎ£¬Structs¶¼ÐèÒªÒÔϼ¸¸öÈí¼þ£º

¡¡¡¡. Java Development Kit (JDK). ÄãÐèҪΪÄãµÄ²Ù×÷ϵͳÏÂÔغͰ²×°Ò»¸öJava 2 JDKʵÏÖ¡£

¡¡¡¡£®ServletÈÝÆ÷¡£Ä㻹ÐèÒªÏÂÔغͰ²×°Ò»¸ö¼æÈÝServlet API¹æ·¶£¨2.2°æÒÔÉÏ£©¡¢JSP¹æ·¶£¨1.1°æÒÔÉÏ£©µÄservletÈÝÆ÷¡£Ò»¸öºÃµÄÑ¡ÔñÊÇÏÂÔØApacheµÄTomcat£¬Ëü¿ÉÒÔÖ§³ÖÍøÒ³·þÎñ£¬²¢ÇÒ¿ÉÒÔÔËÐÐservletºÍJSP¡£

¡¡¡¡£®XML½âÎöÆ÷¡£StrutsÐèÒªÒ»¸ö¼æÈÝJava API for XML Parsing (JAXP)¹æ·¶£¨1.1°æ»òÒÔÉÏ£©µÄXML½âÎöÆ÷¡£

¡¡¡¡£®Servlet APIÀࡣΪÁ˱àÒëStructs»òÕßʹÓÃStructsµÄÓ¦Óã¬Ä㽫ÐèÒªÒ»¸ö°üº¬ÓÐservletºÍJSP APIÀàµÄservlet.jarÎļþ¡£´ó²¿·ÖµÄservletÈÝÆ÷¶¼°üº¬ÓÐÕâ¸öJARÎļþ¡£

¡¡¡¡£®JDBC 2.0 optional packageÀà¡£StructsÖ§³Öjavax.sql.DataSourceµÄÒ»¸ö¿ÉѡʵÏÖ£¬Òò´ËËüÐèÒªÕâЩAPIÀàÀ´±àÒë¡£Äã¿ÉÒÔÔÚÕâ¸öÍøÖ·ÏÂÔØÕâЩ°üÀࣺhttp://java.sun.com/products/jdbc/download.html

¡¡¡¡ÒªÊ¹ÓÃStructsÀ´½¨Á¢Ò»¸öÓ¦Óã¬ÐèÒª×ñ´ÓÒÔϲ½Öè¡£Ê×ÏÈ£¬½«StructsÖеÄlib/commons-*.jarºÍ lib/struts.jarÎļþ¿½±´µ½Ó¦ÓÃÖеÄWEB-INF/libĿ¼¡£È»ºó½«StructsÖеÄÈ«²¿±êÇ©¿âÃèÊöÎļþ£¨lib/struts-*.tld£©¿½±´µ½ÄãµÄWebÓ¦ÓÃÖеÄWEB-INFĿ¼¡£

¡¡¡¡¿½±´ÍêÕâЩÎļþºó£¬Äã¾Í¿ÉÒÔÐÞ¸ÄWebÓ¦ÓÃÖеÄweb.xmlÎļþ£¬ÁîËü°üº¬ÓÐÒ»¸ö£¼servlet£¾ÔªËØÀ´¶¨Òå¿ØÖÆÆ÷servlet£¬»¹ÓÐÒ»¸ö£¼servlet-mapping£¾ÔªËØÒÔÖ¸Ã÷ÄĸöÇëÇóµÄURI±»Ó³Éäµ½Õâ¸öservlet¡£Èç¹ûÄãʹÓÃĬÈϵÄĿ¼À´½øÐÐÒ»¸ö±ê×¼µÄ°²×°£¬Äã¿ÉÒÔʹÓÃStrutsÀý×ÓÓ¦ÓÃÖеÄweb.xmlÎļþÀ´×÷Ϊһ¸ö²Î¿¼£¬¿´ËüÊÇÈçºÎÉèÖõģ¬È»ºóÄã¾Í¿ÉÒÔÐÞ¸ÄWebÓ¦ÓÃÖе Äweb.xmlÎļþÀ´Ö¸¶¨Êʵ±µÄ±êÇ©¿âÉùÃ÷¡£ÔÙ´ÎÉêÃ÷£¬Äã¿ÉÒÔÓÉStructsµÄÀý×ÓÓ¦ÓÃÖÐѧϰÈçºÎÉèÖá£

¡¡¡¡ÐÞ¸ÄÍêweb.xmlÎļþºó£¬ÔÚWEB-INFĿ¼´´½¨Ò»¸ö³ÆΪstruts-config.xmlµÄÎļþ£¬ÔÚÆäÖж¨Òå²Ù×÷Ó³ÉäºÍÆäËüÓëÄãµÄÓ¦ÓÃÏà¹ØµÄÌØÐÔ¡£×îºó£¬ÔÚÿ¸ö½«Ê¹ÓÃStruts×Ô¶¨Òå±êÇ©µÄJSPÒ³ÃæµÄ¶¥²¿£¬¼ÓÈëStruts×Ô¶¨Òå±êÇ©µÄÉùÃ÷¡£

¡¡¡¡StrutsÕâ¸öÃû×ÖÀ´Ô´ÓÚÔÚ½¨ÖþºÍ¾Éʽ·É»úÖÐʹÓõÄÖ§³Ö½ðÊô¼Ü¡£ËüµÄÄ¿µÄÊÇΪÁË°ïÖúÄã¼õÉÙÔÚÔËÓÃMVCÉè¼ÆÄ£ÐÍÀ´¿ª·¢WebÓ¦ÓõÄʱ¼ä¡£ÄãÈÔÈ»ÐèҪѧϰºÍÓ¦Óøüܹ¹£¬²»¹ýËü½«¿ÉÒÔÍê³ÉÆäÖÐһЩ·±ÖصŤ×÷¡£Èç¹ûÏë»ìºÏʹÓÃservletsºÍJSPµÄÓŵãÀ´½¨Á¢¿ÉÀ©Õ¹µÄÓ¦Óã¬Struct¿ÉÒÔ°ïÖúÄãÍê³ÉÆäÖеÄһЩ¹¤×÷¡£



¡ü·µ»ØĿ¼
ǰһƪ: ÓÃJaceÕûºÏJavaºÍC++
ºóһƪ: JavaÏûÏ¢·þÎñ»ù´¡