??xml version="1.0" encoding="utf-8" standalone="yes"?>h动漫在线视频,日韩欧美综合在线视频,香蕉久久a毛片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的、以服务器ؓ中心的企业应用Q它是利用Java 2 q_来简化与多企业解决Ҏ的开发、部|和理相关的诸多复杂问题的应用体系l构?br /><br />J2EEq_采用一个多层次分布式的应用模式。这意味着应用逻辑Ҏ功能被划分成lgQ组成J2EE应用的不同应用组件安装在不同的服务器上,q种划分是根据应用组件属于多层次J2EE环境中的哪一个层ơ来军_的。如?所C,J2EE应用可以׃或四个层ơ组成,J2EE多层ơ应用一般被认ؓ是三层应用,因ؓ它们是被分布在三个不同的地点Q客L机器、J2EE服务器和数据库或后端的传l系l服务器。三层架构应用是Ҏ准的客户?服务器应用架构的一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{多Ҏ术。这些技术的出现l电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合v来,形成一个适应目需要的E_架构是项目开发过E中一个非帔R要的步骤?br /><br />一个成功的软g需要有一个成功的架构Q但软g架构的徏立是一个复杂而又持箋改进的过E,软g开发者们不可能对每个不同的项目做不同的架构,而L量重用以前的架构,或开发出量通用的架构方案,Struts是行的基于J2EE的架构方案之一Q其他常用的ZJ2EE的架构方案还有Turbine、RealMothods{。本文主要探讨Struts框架技术的应用?br /><br /><b>J2EE应用E序架构的发?/b><br /><br />在J2EE应用E序架构的发展\E中Q主要经历了两个大的阶段Q?br /><br />1、Model 1<br /><br />在JSP面中结合业务逻辑、服务器端处理程序和HTMLQ在JSP面中同时实现显C、业务逻辑和流E控Ӟ从而快速的完成Web应用开发。这U模型的不之处Q?Q不利于应用扩展和更新?Q业务逻辑和表C逻辑混合在JSP面中没有进行抽象和分离Q不利于应用pȝ业务的重用和改动?br /><br />2、Model 2<br /><br />表示的是ZMVC模式的框架。根据Model 2Qservlet 处理数据存取和导航流Q?JSP处理表现。Model 2 使Java 工程师和HTML设计者分别工作于它们所擅长和负责的部分。Model 2应用的一部分发生改变q不强求其他部分也跟着发生改变。HTML 开发h员可以改变程序的外观和感觉,q不需要改变后端servlet的工作方式。把应用逻辑、处理过E和昄逻辑分成不同的组件实现。I补了Model1的不?br /><br /><strong>Struts框架技?/strong><br /><br />Struts 框架是ZModel 2 的架构,也就是基于MVC模式的框架技术。它是一个免费的开源的WEB层的应用框架,h很高的可配置性,和有一个不断增长的Ҏ列表。一个前端控制组Ӟ一pd动作c,动作映射Q处理XML的实用工LQ服务器端java bean 的自动填充,支持验证的WEB 表单Q国际化支持Q生成HTMLQ实现表现逻辑和模板组成了struts的灵。图2昄了Strutslg是如何一起工作的?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业务逻辑cR当 ActionServlet 从容器接收到一个请求,它用URI (或者\径“path? 来决定哪个Action 用来处理请求。一?Action可以校验输入Qƈ且访问业务层以从数据库或其他数据服务中检索信息?br /><br />为校验输入或者用输入来更新数据库, Action 需要知道什么被提交上来。ƈ不是强制每个Action 从请求中抓取q些|而是?ActionServlet 输入绑定到JavaBean中。输?bean是Struts ActionForm ccȝ子类。ActionServlet 通过查找h的\径可以决定用哪个ActionFormQAction 也是通过同样的方法选取的。每个Action都必MHTTP 响应q行应答?通常, Struts Action q不自行加工响应信息Q而是请求{发到其他资源Q比如JSP 面。Struts 提供一个ActionForward c,用来一个页面的路径存储为逻辑名称。当完成业务逻辑后,Action 选择q向Servletq回一个ActionForward。Servlet 然后使用存储在ActionForward 对象中的路径来调用页面完成响应?br /><br />Struts 这些细节都l定在一个ActionMapping 对象中。每个ActionMapping 相对于一个特定的路径。当某个路径被请求时QServlet 查询ActionMapping 对象。ActionMapping对象告诉servlet哪个Actions?ActionForms ?ActionForwards 被使用?br /><br />所有这些细节,关于ActionQ?ActionFormQ?ActionForwardQ?ActionMappingQ以及其他一些东西,都在struts-config.xml 文g中定义?ActionServlet 在启动时dq个配置文gQƈ创徏一个配|对象数据库。在q行ӞStruts 应用Ҏ的是文g创徏的配|对象,而不是文件本w?br /><br /><b>ZStruts框架的应用设计实?/b><br /><br />本文以“面向铸造行业的|络化制造ASPq_开发”项目中的Y件租用模块ؓ例,来说明如何设计基于Struts框架的Web应用。在该模块中Q用户合法登陆网站后Q可以根据需要选择所要租用的软gcd及Y件中的功能模块,认信息提交服务器后Q用户将收到pȝl予的登陆密码,用户卛_登陆|站Q在U用租用YӞ实行业务托管?br /><br />Ҏ目需求分?定该系l必d备的性能?1)良好的交互?工作内容中有相当大的部分是hZ?q就要求pȝ的交互性要强?)较好的可扩展?工作的内容和形式h多变?要求pȝh良好的可扩展性?)良好的可l护?pȝ投入使用?主要是由理员承担系l维护的工作,l护人员不定期变?q就要求pȝ的可l护性强?)h较好的跨q_?用户可能使用各种不同的操作系l?而且Z适应今后可能的变?pȝ应具有较好的跨^台性。基于以上四?在开发Y件租用模块时,采用J2EE~程环境,q相应采用了专ؓ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接受所有的HTTPh,然后Ҏ配置文g的内?军_请求映到哪一个Action对象,本系l中有两个Action对象,分别对应着登陆q程软g(LogonAction)和系l反馈密?MailAction)?br /><br />LogonAction首先会验证用h否已l登?如果没有d则重定向到登录页?Logon.jsp),验证通过后根据请求参数决定下一步的处理,如果用户q没有选择U用软gQ则转到软g介绍U用界面QQuery.jspQ,选择需要租用的软g或Y件的某些模块Q提交信息后QMailAction使服务器向用h交密码,用户接收到密码后Q登陆运行Y件?br /><br />如果用户登陆软g成功Q则通过配置文gstruts-config.xml中的ActionForwardQ通过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框架技术及其工作原理的基础上,l合“面向铸造行业的|络化制造ASPq_开发”项目,提出了在U租用模块的设计思\,qؓ今后更好的应用采用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>