ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产高清在线观看,日韩大陆av,亚州av中文字幕在线免费观看http://www.aygfsteel.com/machilansing/category/14195.htmlLansing--Coding 不是æ¢? zh-cnWed, 28 Feb 2007 03:58:19 GMTWed, 28 Feb 2007 03:58:19 GMT60Struts框架技术在J2EE中的研究和应ç”?/title><link>http://www.aygfsteel.com/machilansing/archive/2006/08/17/Struts.html</link><dc:creator>Lansing</dc:creator><author>Lansing</author><pubDate>Thu, 17 Aug 2006 11:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/machilansing/archive/2006/08/17/Struts.html</guid><wfw:comment>http://www.aygfsteel.com/machilansing/comments/64193.html</wfw:comment><comments>http://www.aygfsteel.com/machilansing/archive/2006/08/17/Struts.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/machilansing/comments/commentRss/64193.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/machilansing/services/trackbacks/64193.html</trackback:ping><description><![CDATA[ <p> <span id="wmqeeuq" class="top11"> <strong>J2EE½Ž€ä»?/strong> </span> </p> <p> <span id="wmqeeuq" class="top11"> <strong> <br /> <br /> </strong>J2EE是一个开攄¡š„、基于标准的òq›_°åQŒå¯ä»¥å¼€å‘、部¾|²å’Œ½Ž¡ç†N层结构的、面向Webçš„ã€ä»¥æœåŠ¡å™¨äØ“(f¨´)中心的企业çñ”应用åQŒå®ƒæ˜¯åˆ©ç”¨Java 2 òq›_°æ¥ç®€åŒ–与多çñ”企业解决æ–ÒŽ(gu¨©)¡ˆçš„开发、部¾|²å’Œ½Ž¡ç†ç›¸å…³çš„诸多复杂问题的应用体系¾l“æž„ã€?br /><br />J2EEòq›_°é‡‡ç”¨ä¸€ä¸ªå¤šå±‚次分布式的应用模式。这意味着应用逻辑æ ÒŽ(gu¨©)®åŠŸèƒ½è¢«åˆ’åˆ†æˆ¾l„äšgåQŒç»„成J2EE应用的不同应用组件安装在不同的服务器上,˜q™ç§åˆ’分是根据应用组件属于多层次J2EE环境中的哪一个层‹Æ¡æ¥å†›_®šçš„。如å›?所½Cºï¼ŒJ2EE应用可以ç”׃¸‰æˆ–四个层‹Æ¡ç»„成,J2EE多层‹Æ¡åº”ç”¨ä¸€èˆ¬è¢«è®¤äØ“(f¨´)æ˜¯ä¸‰å±‚åº”ç”¨ï¼Œå› äØ“(f¨´)它们是被分布在三个不同的地点åQšå®¢æˆïL(f¨¥ng)«¯æœºå™¨ã€J2EE服务器和数据库或后端的传¾lŸç³»¾lŸæœåŠ¡å™¨ã€‚ä¸‰å±‚æž¶æž„åº”ç”¨æ˜¯å¯ÒŽ(gu¨©) ‡å‡†çš„客户ç«?服务器应用架构的一¿Uæ‰©å±•, 卛_œ¨å®¢æˆ·ç«¯åº”用和后台存储之间增加一个多¾U¿ç¨‹åº”用服务器ã€?<br /><br /></span> </p> <center> <img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://java.ccidnet.com/col/attachment/2006/4/663945.gif" /> </center> <p> <br /> <br />J2EE体系包括JSP、Servlet、EJB、WEB SERVICE½{‰å¤š™åÒŽ(gu¨©)Š€æœ¯ã€‚è¿™äº›æŠ€æœ¯çš„å‡ºçŽ°¾l™ç”µ(sh¨´)子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合è“v来,形成一个适应™å¹ç›®éœ€è¦çš„½E›_®šæž¶æž„是项目开发过½E‹ä¸­ä¸€ä¸ªéžå¸”R‡è¦çš„æ­¥éª¤ã€?br /><br />一个成功的软äšg需要有一个成功的架构åQŒä½†è½¯äšg架构的徏立是一个复杂而又持箋改进的过½E‹ï¼Œè½¯äšg开发者们不可能对每个不同的项目做不同的架构,而æ€ÀL˜¯ž®½é‡é‡ç”¨ä»¥å‰çš„æž¶æž„,或开发出ž®½é‡é€šç”¨çš„æž¶æž„方案,Strutsž®±æ˜¯‹¹è¡Œçš„基于J2EE的架构方案之一åQŒå…¶ä»–常用的åŸÞZºŽJ2EE的架构方案还有Turbine、RealMothods½{‰ã€‚本文主要探讨Struts框架技术的应用ã€?br /><br /><b>J2EE应用½E‹åºæž¶æž„的发å±?/b><br /><br />在J2EE应用½E‹åºæž¶æž„的发展èµ\½E‹ä¸­åQŒä¸»è¦ç»åŽ†äº†ä¸¤ä¸ªå¤§çš„é˜¶æ®µåQ?br /><br />1、Model 1<br /><br />在JSP™åµé¢ä¸­ç»“合业务逻辑、服务器端处理程序和HTMLåQŒåœ¨JSP™åµé¢ä¸­åŒæ—¶å®žçŽ°æ˜¾½Cºã€ä¸šåŠ¡é€»è¾‘å’Œæµ½E‹æŽ§åˆÓž¼Œä»Žè€Œå¿«é€Ÿçš„完成Web应用开发。这¿Uæ¨¡åž‹çš„不èƒö之处åQ?åQ‰ä¸åˆ©äºŽåº”用扩展和更新ã€?åQ‰ä¸šåŠ¡é€»è¾‘å’Œè¡¨½Cºé€»è¾‘混合在JSP™åµé¢ä¸­æ²¡æœ‰è¿›è¡ŒæŠ½è±¡å’Œåˆ†ç¦»åQŒä¸åˆ©äºŽåº”用¾pȝ»Ÿä¸šåŠ¡çš„é‡ç”¨å’Œæ”¹åŠ¨ã€?br /><br />2、Model 2<br /><br />表示的是åŸÞZºŽMVC模式的框架。根据Model 2åQŒservlet 处理数据存取和导航流åQ?JSP处理表现。Model 2 使Java 工程师和HTML设计者分别工作于它们所擅长和负责的部分。Model 2应用的一部分发生改变òq¶ä¸å¼ºæ±‚其他部分也跟着发生改变。HTML 开发äh员可以改变程序的外观和感觉,òq¶ä¸éœ€è¦æ”¹å˜åŽç«¯servlet的工作方式。把应用逻辑、处理过½E‹å’Œæ˜„¡¤ºé€»è¾‘分成不同的组件实现。å×I补了Model1的不­‘Ÿë€?br /><br /><strong>Struts框架技æœ?/strong><br /><br />Struts 框架ž®±æ˜¯åŸÞZºŽModel 2 的架构,也就是基于MVC模式的框架技术。它是一个免费的开源的WEB层的应用框架,å…ähœ‰å¾ˆé«˜çš„可配置性,和有一个不断增长的ç‰ÒŽ(gu¨©)€§åˆ—表。一个前端控制组ä»Óž¼Œä¸€¾pÕdˆ—动作¾c»ï¼ŒåŠ¨ä½œæ˜ å°„åQŒå¤„理XML的实用工å…ïL(f¨¥ng)±»åQŒæœåŠ¡å™¨ç«¯java bean 的自动填充,支持验证的WEB 表单åQŒå›½é™…化支持åQŒç”ŸæˆHTMLåQŒå®žçŽ°è¡¨çŽ°é€»è¾‘å’Œæ¨¡æ¿ç»„æˆäº†struts的灵™ì‚。图2昄¡¤ºäº†Struts¾l„äšg是如何一起工作的ã€?br /><br /></p> <center> <img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://java.ccidnet.com/col/attachment/2006/4/663947.gif" /> </center> <p> <br /> <br />Struts çš„ActionServlet æŽ§åˆ¶å¯ÆDˆª‹¹ã€‚å…¶ä»–Struts ¾c»ï¼Œæ¯”如Action, 用来讉K—®ä¸šåŠ¡é€»è¾‘¾c…R€‚当 ActionServlet 从容器接收到一个请求,它ä‹É用URI (或者èµ\径“pathâ€? 来决定哪个Action ž®†ç”¨æ¥å¤„理请求。一ä¸?Action可以校验输入åQŒåƈ且访问业务层以从数据库或其他数据服务中检索信息ã€?br /><br />为校验输入或者ä‹É用输入来更新数据库, Action éœ€è¦çŸ¥é“ä»€ä¹ˆè¢«æäº¤ä¸Šæ¥ã€‚åÆˆä¸æ˜¯å¼ºåˆ¶æ¯ä¸ªAction 从请求中抓取˜q™äº›å€û|¼Œè€Œæ˜¯ç”?ActionServlet ž®†è¾“入绑定到JavaBean中。输å…?bean是Struts ActionForm c¾cȝš„子类。ActionServlet 通过查找è¯äh±‚çš„èµ\径可以决定ä‹É用哪个ActionFormåQŒAction 也是通过同样的方法选取的。每个Action都必™åÖM»¥HTTP 响应˜q›è¡Œåº”ç­”ã€?通常, Struts Action òq¶ä¸è‡ªè¡ŒåŠ å·¥å“åº”ä¿¡æ¯åQŒè€Œæ˜¯ž®†è¯·æ±‚è{发到其他资源åQŒæ¯”如JSP ™åµé¢ã€‚Struts 提供一个ActionForward ¾c»ï¼Œç”¨æ¥ž®†ä¸€ä¸ªé¡µé¢çš„路径存储为逻辑名称。当完成业务逻辑后,Action 选择òq¶å‘Servlet˜q”回一个ActionForward。Servlet 然后使用存储在ActionForward 对象中的路径来调用页面完成响应ã€?br /><br />Struts ž®†è¿™äº›ç»†èŠ‚éƒ½¾l‘定在一个ActionMapping 对象中。每个ActionMapping 相对于一个特定的路径。当某个路径被请求时åQŒServlet ž®±æŸ¥è¯¢ActionMapping 对象。ActionMapping对象告诉servlet哪个Actionsã€?ActionForms å’?ActionForwards ž®†è¢«ä½¿ç”¨ã€?br /><br />所有这些细节,关于ActionåQ?ActionFormåQ?ActionForwardåQ?ActionMappingåQŒä»¥å?qi¨¢ng)其他一些东西,都在struts-config.xml æ–‡äšg中定义ã€?ActionServlet 在启动时è¯Õd–˜q™ä¸ªé…ç½®æ–‡äšgåQŒåƈ创徏一个配¾|®å¯¹è±¡æ•°æ®åº“。在˜qè¡Œæ—Óž¼ŒStruts 应用æ ÒŽ(gu¨©)®çš„æ˜¯æ–‡äšg创徏的配¾|®å¯¹è±¡ï¼Œè€Œä¸æ˜¯æ–‡ä»¶æœ¬íw«ã€?br /><br /><b>åŸÞZºŽStruts框架的应用设计实ä¾?/b><br /><br />本文以“面向铸造行业的¾|‘络化制造ASPòq›_°å¼€å‘”项目中的èÊYä»¶ç§Ÿç”¨æ¨¡å—äØ“(f¨´)例,来说明如何设计基于Struts框架的Web应用。在该模块中åQŒç”¨æˆ·åˆæ³•登陆网站后åQŒå¯ä»¥æ ¹æ®éœ€è¦é€‰æ‹©æ‰€è¦ç§Ÿç”¨çš„软äšg¾cÕdž‹å?qi¨¢ng)èÊY件中的功能模块,¼‹®è®¤ä¿¡æ¯æäº¤æœåŠ¡å™¨åŽåQŒç”¨æˆ·å°†æ”¶åˆ°¾pȝ»Ÿ¾l™äºˆçš„登陆密码,用户卛_¯ç™»é™†¾|‘ç«™åQŒåœ¨¾U¿ä‹É用租用èÊYä»Óž¼Œå®žè¡Œä¸šåŠ¡æ‰˜ç®¡ã€?br /><br />æ ÒŽ(gu¨©)®™å¹ç›®éœ€æ±‚分æž?¼‹®å®šè¯¥ç³»¾lŸå¿…™åÕd…·å¤‡çš„æ€§èƒ½æœ?1)良好的交互æ€?工作内容中有相当大的部分是ähæœÞZº¤‹¹?˜q™å°±è¦æ±‚¾pȝ»Ÿçš„交互性要强ã€?)较好的可扩展æ€?工作的内容和形式å…ähœ‰å¤šå˜æ€?要求¾pȝ»Ÿå…ähœ‰è‰¯å¥½çš„可扩展性ã€?)良好的可¾l´æŠ¤æ€?¾pȝ»ŸæŠ•入使用å?主要是由½Ž¡ç†å‘˜æ‰¿æ‹…ç³»¾lŸç»´æŠ¤çš„工作,¾l´æŠ¤äººå‘˜ä¸å®šæœŸå˜åŠ?˜q™å°±è¦æ±‚¾pȝ»Ÿçš„可¾l´æŠ¤æ€§å¼ºã€?)å…ähœ‰è¾ƒå¥½çš„è·¨òq›_°æ€?用户可能使用各种不同的操作系¾l?而且ä¸ÞZº†é€‚应今后可能的变åŒ?¾pȝ»Ÿåº”具有较好的跨åã^台性。基于以上四ç‚?在开发èÊY件租用模块时,采用J2EE¾~–程环境,òq¶ç›¸åº”é‡‡ç”¨äº†ä¸“äØ“(f¨´)J2EE定制的Struts框架ã€?br /><br />做基于Struts框架的项目开å?关键是要有一个好的整体模åž?计划好系¾lŸä¸­åŒ…括哪几个模å?每个模块各需要什么样的FormBean、JavaBean,各种处理¾l“果都通过哪些JSP™åµé¢æ¥å±•çŽ?同时配置好struts-config.xmlæ–‡äšg。本¾pȝ»Ÿçš„设计模型如å›?所½Cºã€?br /><br /></p> <center> <img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://java.ccidnet.com/col/attachment/2006/4/663949.gif" /> </center> <p> <br /> <br />ActionServlet接受所有的HTTPè¯äh±‚,然后æ ÒŽ(gu¨©)®é…ç½®æ–‡äšg的内å®?军_®šž®†è¯·æ±‚映ž®„到哪一个Action对象,本系¾lŸä¸­æœ‰ä¸¤ä¸ªAction对象,分别对应着登陆˜qœç¨‹è½¯äšg(LogonAction)和系¾lŸåé¦ˆå¯†ç ?MailAction)ã€?br /><br />LogonAction首先ä¼?x¨¬)验证用æˆäh˜¯å¦å·²¾lç™»å½?如果没有ç™Õd½•则重定向到登录页é?Logon.jsp),验证通过后根据请求参数决定下一步的处理,如果用户˜q˜æ²¡æœ‰é€‰æ‹©¿UŸç”¨è½¯äšgåQŒåˆ™è½¬åˆ°è½¯äšg介绍¿UŸç”¨ç•Œé¢åQˆQuery.jspåQ‰ï¼Œé€‰æ‹©éœ€è¦ç§Ÿç”¨çš„软äšg或èÊY件的某些模块åQŒæäº¤ä¿¡æ¯åŽåQŒMailAction使服务器向用æˆähäº¤å¯†ç ï¼Œç”¨æˆ·æŽ¥æ”¶åˆ°å¯†ç åŽåQŒç™»é™†è¿è¡ŒèÊYä»¶ã€?br /><br />如果用户登陆软äšg成功åQŒåˆ™é€šè¿‡é…ç½®æ–‡äšgstruts-config.xml中的ActionForwardåQŒé€šè¿‡GetInfo对象把该用户¿UŸç”¨çš„èÊY件信息读取道FormBean中,然后调用JSP™åµé¢æ˜„¡¤ºBean里的数据。如果是保存数据信息,则调SaveInfo对象ž®†FormBean里保持的信息存入数据库;如果是修改信æ?则调ModifyInfo对象ž®†FormBean里保持的修改后的信息存入数据库;如果是删除数据信æ?则调用DeleteInfo对象ž®†FormBean里保持的信息从数据库中删除ã€?br /><br />¾lè¿‡˜q™æ ·è®¾è®¡çš„ç³»¾l?用户界面和数据处理已¾lå®Œå…¨åˆ†¼›?再加上在JSP™åµé¢ä¸­ä‹É用了自定义标è®?佉K¡µé¢ä¸­æ²¡æœ‰äº†Java的脚本代ç ?˜q™æ ·Web界面的设计和后端½E‹åºçš„编写就有了清晰的界¾U?便于开发团队的分工,òq¶ä¸”¾l´æŠ¤èµäh¥ä¹Ÿå¾ˆæ–¹ä¾¿ã€?br /><br /><b>¾l“束è¯?/b><br /><br />Struts是一¿Uéžå¸æ€¼˜¿U€çš„基于J2EEçš„MVC应用框架,虽然从正式发布到现在也只有两òq´å¤šçš„æ—¶é—?但它已经­‘Šæ¥­‘Šå¤šåœ°è¿ç”¨äºŽä¼ä¸šòq›_°ä¹‹ä¸Š,许多大型¾|‘站已成功地应用了Struts框架。本文在æ€È»“了Struts框架技术及(qi¨¢ng)其工作原理的基础上,¾l“合“面向铸造行业的¾|‘络化制造ASPòq›_°å¼€å‘”项目,提出了在¾U¿ç§Ÿç”¨æ¨¡å—的设计思èµ\,˜q™äØ“(f¨´)今后更好的应用采用Struts框架提供了参考ã€?/p> <img src ="http://www.aygfsteel.com/machilansing/aggbug/64193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/machilansing/" target="_blank">Lansing</a> 2006-08-17 19:36 <a href="http://www.aygfsteel.com/machilansing/archive/2006/08/17/Struts.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>