本站首页    管理页面    写新日志    退出


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:923096
建立时间:2007年5月10日




[struts2]<Starting Struts2>--Where Struts2 fits into the Web Paradigm(翻译)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/10/27 13:26:14

现今的开发者有许多不同的WEB框架可用.其中一些是来自开源的团体,一些则来自商业公司,还有一些为了当前WEB发展的需要而正在开发的.现在有超过400个开源框架,虽然这是一个大数目,但还有很多内部使用的框架部署在生产环境中.所有,有很多的选择,为什么要选择Struts2? 这有一些特征也许会吸引你使用Struts2: 基于Action的框架 成熟与蓬勃发展和用户社区 注释和XML配置选项 基于POJO的Action,非常容易测试 集成Spring, SiteMesh和Tiles 集成OGNL表达式语言 基于主题的标签库和Ajax标签 多种视图选选择(JSP,Freemarker,Velocity和XSLT) 插件扩展和修改框架的特征 所有的为了选择一个框架,选择一个风格框架的决定,都是颇具争议的.我们来看现在Web应用的选择,了解Struts可以应用在哪些方面.ServletsServlets提供了第一个基于Java的WEB开发方法.在HTTP协议下,servlets提供了一种映射URL到调用特定的类的方法.很快它就被验证,虽然这是一个很大的进步,但在Java代码中生成HTML代码,维护起来简直是个恶梦.每当一个简单的用户接口需要更改,Java程序员则需要修改Servlet代码,重新编译这些源码,并将其发布到应用所在的服务器环境中.JSP and Scriptlet Development"维护恶梦"的结果,就是将发展的结果颠倒了.比起将HTML代码放置在Servlet或是Java代码中,将Java代码放HTML代码中(JSP)则会更好一些.每个JSP里包含请求的逻辑处理和展示逻辑.一个问题解决了,但另一个问题又引进来了.Java代码是在类文件中的,然而,这里却没有方法或类的结构.看看早期的JSP文件,你会发现两个现像: 拷贝和粘贴代码:从一个JSP文件中拷贝Java到其他的JSP文件中.从原始的代码中传播出来的缺陷和错误,增加大量的工作量,需要同时对所有的文件做出修改. 调用公用的Java格式化对象:公用的格式化或逻辑代码组成一个可复用的对象.然后JSP使用公用对象.从这些中发现了最佳的实践模式--从JSPs中使用Java对象. 做为JSP规范的发展,标签被引进入来,用于复用Java对象.Tag提供一个类似于HTML的写法来访问底层的代码,允许设计者(而非开发者)利用IDEs使用动态标签编辑网布的布局.例如JSP提供的<jsp:useBean.../>和<jsp:getProperty.../>标签.随同提供JSP标签库一起,JSPs提供了一个让开发人员创建自己的标签库的方法.Action-Based Frameworks基于Action的框架,是在结合了Servlets和JSPs两者的概念之上.想法是拆分用户发送的请求的页面的请求处理和显示逻辑,让每个部分都做它做的最好的一块.这个实现使用一个来自Smalltalk的模式,MVC模式,或是更多常说的前端控制器,或是Sun说法中的Model2.在这个模式中,Servlet是一个控制器,提供一个对所有客户端页面请求的集中的控制点.它映射请求的URL到工作单元中的一个action.这个action的工作则将对给定的URL执行特定的方法, 访问HTTPsession, HTTP请求和参数,调用商业服务,并将响应映射到一个Model中,一般使用POJO.最后,action返回一个结果,映射(通过配置文件)到JSP来泻染视图.Struts2是一个基于action的MVC的WEB框架.Component-Based Frameworks由于WEB应用变得越来越复杂,人们认识到一个页面不再是将逻辑分离,WEB应用了多种页面形式,链接内容更新和其他许多自义定的窗口小部件--所有的都需要处理逻辑以实现他们的任务.为了解决这些复杂性,基于组件的框架变得开始受欢迎.它们提供了一种封闭的由用户界面组件和类的组件,并且是由事件驱动的,而且比基于action的框架更加面向对象.一个组件可以是一个HTML输入框,一个HTML的窗体或是提供的自定义窗口小部件.事件,像窗体的提交或链接这种,映射到描述组件的类的方法,或到特定的监听类.另一个好处是基于组件的框架,允许你方便的复用你的组件在多个WEB应用中.基于组件的框架有JSF,Wicket和Tapestry等.The Great Equalizer – Ajax在2005年初,一种新的魔力出现在WEB开发中.Jesse James Garrett杜撰的,AJAX代表"Asynchronous JavaScript and XML".相对来说,技术并不新鲜.事实上,主要的WEB浏览组件已经创建了这个异步调用--XMLHttpRequest对象, 早在6年前就已经可用了.但是有什么新应用使用了这项技术呢.Google Maps是最早充分利用这项技术的应用.网页活跃了起来--您能与控制和装饰物交互.使用鼠标你可以在屏幕内滚动地图;当输入一个地址时,信息将在地图上被物化出来;最后,the culmination being route planning which orchestrated all these features into a useable web application.并且,所有这些,都没有发生整个页面的刷新.用户界面使用Ajax功能允许WEB浏览器对服务器的请求使用更小的信息量,并且只有它被需要的时候.请求结果被服务器格式化或操作,并直接返回给页面显示,使用WEB浏览器将变化传递给用户.只有页面的部分被更新,而不是整个页面,使用户觉得这个WEB应用可以更快的响应他们的操作.从UI来的请求,类似事件--它们非常的分散,为一个单独的组件或方法传递信息.不再需要一个action为整个页面检索数据,它们 更加简洁,而且因此更方便在各个应用中复用.实际上,一个Ajax用户界面调用基于action的框架允许action框架的行为与基于组件的框架相似.事实上,这种技术的组合提供了更加松耦合和可复用性更加的系统.同样的actions可以为Ajax组件提供JSON,XML或HTML的视图片段,和其他actions结合提供非Ajax用户界面的HTML视图相似.


阅读全文(1265) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.023 second(s), page refreshed 144800909 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号