logo资料库

JSP外文翻译.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
毕业设计(论文)外文 资料翻译 题 目: Struts——An Open-source MVC Implementation Struts——一种开源 MVC 的实现 院系名称: 信息科学与工程学院 专业班级: 计算机科学与技术 07 级**班 学生姓名: 吕** 学 号: 2007414**** 指导教师: 刘 * 教师职称: 讲师 起止日期: 地 点: 2011-03-01~2011-06-03 莲花街校区 附 件: 1.外文资料翻译译文;2.外文原文。 指导教师评语: 该生所译的“Struts——An Open-source MVC Implementation”一文与其毕业设 计课题有一定的关联,译文整体较为准确,翻译后的文章符合中文的习惯。但还有 个别的词翻译的不够准确,个别的语句不够通顺。总的来说此译文是一篇合格的译 文。 签名: 2011 年 3 月 25 日
指导教师评语: 该生所译的“ASP.NET Technology for Web Application”一文与其毕业设计课题 有一定的关联,译文整体较为准确,翻译后的文章符合中文的习惯。但还有个别的 词翻译的不够准确,个别的语句不够通顺。总的来说此译文是一篇合格的译文。 签名: 2011 年 3 月 25 日 Struts——An Open-source MVC Implementation
附件 1:外文资料翻译译文 Struts——一种开源 MVC 的实现 这篇文章介绍 Struts,一个使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 的实现。Struts 可以帮助你控制 Web 项目中的变化并提高 专业化。即使你可能永远不会用 Struts 实现一个系统,你可以获得一些想法用于你 未来的 servlet 和 JSP 网页的实现中。 简介 在小学校园里的小孩子们都可以在因特网上发布 HTML 网页。然而,有一个 重大的不同在一个小学生和一个专业人士开发的网站之间。网页设计师(或者 HTML 开发人员)必须理解颜色、用户、生产流程、网页布局、浏览器兼容性、图 像创建、JavaScript 等等。设计漂亮的网站需要做大量的工作,大多数 Java 开发 人员更注重创建优美的对象接口,而不是用户界面。JavaServer Pages (JSP) 技术为 网页设计人员和 Java 开发人员提供了一种联系钮带。 如果你开发过大型 Web 应用程序,你就理解“变化”这个词语。“模型-视图- 控制器”(MVC) 就是用来帮助你控制变化的一种设计模式。MVC 减弱了业务逻辑 接口和数据接口之间的耦合。Struts 是一种 MVC 实现,它将 Servlet 2.2 和 JSP 1.1 标记(属于 J2EE 规范)用作实现的一部分。你可能永远不会用 Struts 实现一 个系统,但了解一下 Struts 或许使你能将其中的一些思想用于你以后的 Servlet 和 JSP 实现中。 模型-视图-控制器 (MVC) JSP 标签只解决了我们问题中的一部分。我们依然有验证、流控制、以及更新 应用程序结构的问题。这就是 MVC 从哪儿来以及来干嘛的。MVC 通过把问题分成 三类来帮助解决一些与单模块相关的问题:  Model(模型) 模块包括应用程序功能的核心。模型封装着应用程序的各个结构。有时它所 包含的唯一功能就是结构。它对于视图或者控制器一无所知。  View(视图) 视图提供了模型的演示。它是应用程序的外表。视图可以进入模型获得者,
但是它对于设置者一无所知。除此之外,它对于控制器也是一无所知。视图 仅仅当模型发生改变的时候才被通知。  Controller(控制器) 控制器对于用户的输入做出反应。它创造和设置模型。 MVC 模型 2 Web 给软件开发人员带来了一些独特的挑战,最显著的就是客户端和服务器端 的无结构连接。这种无结构连接行为使得模型很难知道视图的改变。在 Web 上,浏 览器必须重复询问服务器端以此来发现应用程序结构的改变。 另外一个显而易见的改变就是相对于模型或者控制器,视图采用了不同的技 术。当然,我们可以使用 Java(或者 PERL、C/C++ 或之前的其他代码)代码来 生成 HTML。这种方法存在一些弊端:  Java 程序员应该开发服务,而不是 HTML。  布局的改变将需要改变代码。  服务的客户将有能力去创造一些页面去满足他们的一些特殊需求。  页面设计人员将不能直接介入到页面的开发中。  嵌入在代码中的 HTML 将会变得丑陋。 对于 Web,MVC 的经典形式将需要改变。图 4 展示了 MVC 的 Web 适应,也 就是通常所说的 MVC 模型 2 或者 MVC 2。. 图 4. MVC 模型 2 Struts,MVC 2 的一种实现 Struts 是一组相互协作的类、servlet 和 JSP 标记,它们组成一个可重用的 MVC 2 设计。这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含
了丰富的标记库和独立于该框架工作的实用程序类。图 5 显示了 Struts 的一个概 览。 图 5. Struts 概览 Struts 概览  客户端浏览器 一个来自客户端浏览器的 HTTP 创建一个事件。Web 容器将会用一个 HTTP 响应来作出响应。  控制器 控制器接收来自浏览器的请求,并决定发送请求到何处。就 Struts 而言,控 制器就是一个以 servlet 执行的一个命令设计模式。struts-config.xml 文件配 置控制器。  业务逻辑 业务逻辑更新模型的状态,并帮助控制应用程序的流。就 Struts 而言,这就 是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。  模型状态 模型代表了应用程序的状态。业务对象更新应用程序的状态。ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。JSP 文件使用 JSP 标记读取来自 ActionForm bean 的信息。  视图 视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型 信息 -- 只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素 之一。
Struts 详细资料 在图 6 中展示了一个无其他附属设备的阿帕奇 struts 的 action 包的 UML 图表。 图 6 显示了 ActionServlet (Controller)、 ActionForm (Form State) 和 Action (Model Wrapper) 之间的最小关系。 图 6. 命令(ActionServlet) 与 模型 (Action & ActionForm) 之间的关系的 UML 图 ActionServlet 类 你还记得使用函数映射的日子吗?你会映射一些输入时间到一个函数的一个 指针。如果你很老练,你可以把这些配置信息放进一个文件里并且在运行时加载该 文件。函数指针装扮了在 C 语言结构化程序设计中的旧时光。 现在日子好过多了,自从我们有了 Java 技术、XML、J2EE 等等之后。Struts 控制器是一个映射事件(事件通常是一个 HTTP post)到类的一个 servlet。猜猜 怎么着-- 控制器用一个配置文件以致于你不必非硬编码这些值。生活变了,但方法 依然如此。 ActionServlet 是 MVC 实现的命令部分并且它是框架的核心。 ActionServlet (Command) 创建并使用 Action 、 ActionForm 和 ActionForward 。正如前面所提 及的, struts-config.xml 文件配置 Command。在 Web 工程创建期间, Action 和 ActionForm 被扩展用来解决特殊的问题空间。文件 struts-config.xml 指导 ActionServlet 如何扩展这些类。这种方法有几个优点:  网页设计人员不必费力地通过 Java 代码来理解应用程序的流程。  当流程发生改变时 Java 开发人员不需要重新编译代码。  通过扩展 ActionServlet 命令函数可以被添加进来。
ActionForm 类 ActionForm 维持着 Web 应用程序的会话状态。 ActionForm 是一个必须为每 个输入表单模型创建该类的子类的抽象类。当我说 输入表单模型 时,我就是说 ActionForm 代表了一个由 HTML 表单设置或更新的一般意义上的数据。例如,你 可能有一个由 HTML 表单设置的 UserActionForm 。Struts 框架将会:  检查 UserActionForm 是否存在;如果不存在,它将会创建该类的 一个实例。  Struts 将使用 HttpServletRequest 中相应的域设置 UserActionForm 的状态。没有太多糟糕的请求.getParameter() 调用。例如, Struts 框架将从请求流中提取 fname 并调用 UserActionForm.setFname() 。  Struts 框架在将在传递它到业务包装 UserAction 之前将更新 UserActionForm 的状态。  在传递它到 Action 类之前,Struts 将还会对 UserActionForm 调用 validation() 方法进行表单验证。 备注: 这样做通常并不明智。别的网页或 业务对象可能有方法使用 UserActionForm ,然而验证可能不同。在 UserAction 类中进行状态验证可能更好。 备注:   UserActionForm 能够维持一个会话级别 。 struts-config.xml 文件控制着 HTML 表单请求与 ActionForm 之 间的映射。  多重请求会被映射到 UserActionForm 。  UserActionForm 可被映射到诸如向导之类的多重页面的东西上。 Action 类 Action 类是一个围绕业务逻辑的一个包装器。 Action 类的目的就是将 HttpServletRequest 翻译给业务逻辑。要使用 Action ,需重写 process() 原理。 ActionServlet (命令)通过使用 perform() 原理将参数化的类传递给 ActionForm 。此外,没有太多讨厌的 request.getParameter() 调用。通过事件到达
这里的时间,输入表单数据(或 HTML 表单数据)已经被从请求流中翻译出来并 进入 ActionForm 类中。 注:扩展 Action 类时请注意简洁。 Action 类应该控制应用程序的流程,而不 应该控制应用程序的逻辑。通过将业务逻辑放在单独的包或 EJB 中,我们就可以 提供更大的灵活性和可重用性。 考虑 Action 类的另一种方式是 Adapter 设计模式。 Action 的用途是“将类的 接口转换为客户机所需的另一个接口。Adapter 使类能够协同工作,如果没有 Adapter,则这些类会因为不兼容的接口而无法协同工作。”(摘自 Gof 所著的 Design Patterns - Elements of Reusable OO Software )。本例中的客户机是 ActionServlet ,它对我们的具体业务类接口一无所知。因此,Struts 提供了它能够 理解的一个业务接口,即 Action 。通过扩展 Action ,我们使得我们的业务接口与 Struts 业务接口保持兼容。(一个有趣的发现是, Action 是类而不是接口)。 Action 开始为一个接口,后来却变成了一个类。真是金无足赤。) Error 类 UML 图(图 6)还包括 ActionError 和 ActionErrors 。 ActionError 封装了单 个错误消息。 ActionErrors 是 ActionError 类的容器,View 可以使用标记访问这 些类。 ActionError 是 Struts 保持错误列表的方式。 图 7. Command (ActionServlet) 与 Model (Action) 之间的关系的 UML 图 ActionMapping 类 输入事件通常是在 HTTP 请求表单中发生的,servlet 容器将 HTTP 请求转换 为 HttpServletRequest 。控制器查看输入事件并将请求分派给某个 Action 类。
分享到:
收藏