本站所列毕业设计(论文)资料均属于原创者所有,初衷是为大家在毕业设计(论文)过程中参考和学习交流之用。

毕业设计我帮你

Struts 是一个开放源码的 MVC 实现

www.bysj580.com / 2017-03-15
Struts 是一个开放源码的 MVC 实现
这篇文章介绍了 Struts,使用 servlet 和 JavaServer 页面 (JSP) 技术的模型-视图-控制器实现。Struts 可以帮助您控制您的 Web 项目的变化和促进专业化。 即使你从来没有实现与 Struts 的系统,您可能会收到一些想法你未来的 servlet 和 JSP 页面执行。
介绍
在读小学的孩子放到互联网上的 HTML 页面。 然而,是小学的网页和专业水准开发的 Web 站点之间非常大的差别。 网页设计器 (或 HTML 开发人员) 必须了解客户、 产品流、 页面布局、 浏览器兼容性、 形象塑造、 JavaScript,和更多的颜色。把漂亮的网站放在一起需要大量的工作,和大多数 Java 开发人员更感兴趣创造比用户界面优美的对象接口。 JavaServer 页面 (JSP) 技术提供了网页设计器和 Java 开发人员之间的粘附。
如果你有一个大型的 Web 应用程序工作,你了解长期变化。 模型-视图-控制器 (MVC) 模式是一种设计模式放在一起,帮助您控制变化。 MVC 分离业务逻辑和数据接口。Struts 是一个 MVC 实现,使用 Servlet 2.2 和 JSP 1.1 标记,从 J2EE 规范,作为执行的一部分。你可能永远不会执行系统与高视阔步,但看着 Struts 可能给你一些想法在你未来的 Servlet 和 JSP 实现上。
模型-视图-控制器 (MVC)
 SP 标记解决我们的问题只是一部分。我们仍然有问题与验证、流量控制和更新应用程序的状态。这是在哪里 MVC 前来搭救。MVC 帮助解决的一些问题与单个模块的方法通过将问题划分为三个类别:该模型包含的核心应用程序的功能。 该模型封装应用程序的状态。有时它包含的唯一功能是状态。它对视图或控制器一无所知。
视图
视图提供模型的演示文稿。它是应用程序的外观。视图可以访问模型的 getter 方法,但却没有知识的二传手。 此外,它对控制器一无所知。在模型更改发生时,应通知视图。
控制器对用户的输入做出反应。它创建并设置的模型。
MVC 模式 2
Web 向软件开发人员,最引人注目的是客户端和服务器之间的无状态连接带来了一些独特的挑战。 此无国籍的行为难以要通知更改的视图的模型。在网络上,浏览器必须重新查询服务器,以发现对应用程序状态的修改。另一个引人注目的变化是视图执行比模型或控制器使用不同的技术。当然,我们可以使用 Java (或 PERL,C/c + + 或什么) 生成 HTML 的代码。有这种办法的几个缺点:
 Java 程序员应该发展服务,不是 HTML。对版式的更改需要更改的代码。该服务的顾客应该能够创建页,以满足其特定需求。网页设计器不能在开发页面中有直接参与。HTML 嵌入代码是丑陋的。为 Web、 古典形式的 MVC 框架需要改变。图 4 显示了 MVC,通常也被称为 MVC 模型 2 或 MVC 2 的 Web 适应。
Struts 的详细信息
在图 6 中显示是精简组织架构 apache。 struts。 行动包的 UML 图。图 6 显示了最小 ActionServlet (控制器)、 ActionForm (窗体状态) 和行动 (模型包装) 之间的关系。
图 6。UML 图的命令 (ActionServlet) 模型 (行动 & ActionForm) 的关系
ActionServlet 类
你还记得函数映射的日子吗?你将一些事件映射输入到指向函数的指针。 如果你在光滑,你会将配置信息放入一个文件并在运行时加载该文件。函数指针数组被结构化编程中 C.的旧时光。现在,我们有 Java 技术、 XML、 J2EE,和所有的生活是更好。Struts 控制器是一个将事件 (一般是 HTTP 发送事件) 映射到类的 servlet。 和猜测什么控制器使用一个配置文件,所以你不能硬编码的值。生活的变化,但保持不变。ActionServlet 是 MVC 实现命令部分,是框架的核心。ActionServlet (命令) 创建并使用 ActionForm、 行动和 ActionForward。正如前面提到的 struts config.xml 文件配置的命令。 在创建 Web 项目的过程中,行动和 ActionForm 延伸,解决具体的问题空间。 该文件 struts config.xml ActionServlet 指示如何使用扩展的类。有这种方法的几个优点:应用程序的整个逻辑流是一个分层的文本文件中。这使得更易查看和了解,尤其是对于大型应用程序。网页设计者不必涉水通过 Java 代码来了解应用程序流。Java 开发人员并不需要进行流量更改时重新编译代码。可以通过扩展 ActionServlet 添加命令功能。      CtionForm 类
ActionForm 维护 Web 应用程序的会话状态。ActionForm 是一个抽象类,是分等级的每个输入的表单模型。当我说 ' 输入的表单模型,我说 ActionForm 代表的是设置或更新的 HTML 表单的数据的一般概念。例如,你可能有 UserActionForm 所设置的 HTML 窗体。Struts 框架将
请检查以查看是否存在 UserActionForm; 如果不是,它将创建类的一个实例。Struts 将设置 UserActionForm 的状态使用字段从相应的应答。 没有更可怕的请求。 getParameter () 调用。例如,Struts 框架将采取 fname 从请求流和调用 UserActionForm.setFname ()。
Struts 框架传递到业务包装 UserAction 之前更新 UserActionForm 的状态。
通过对 UserActionForm 调用验证 () 方法传递到类操作之前, Struts 将进行状态验证表单。 注意: 这不是明智之举。可能使用 UserActionForm 其他页或业务对象,可能在哪,验证不同的方法。 验证状态可能在 UserAction 类中更好。UserActionForm 可以维持在会话级别。
备注: 控制 HTML 窗体来请求映射到哪个 ActionForm struts config.xml文件。多个请求可以映射 UserActionForm。UserActionForm 可以映射到多个页巫师等事情。
操作类
Action 类是业务逻辑的包装。操作类的目的是翻译应答的业务逻辑。 要使用的操作,子类和覆盖进程 () 方法。ActionServlet (命令) 将传递参数来执行使用 ActionForm () 方法的类。再次,没有更可怕请求。 getParameter () 调用。该事件在这里获取的时候,输入的表单数据 (或 HTML 表单数据) 已经被翻译请求流出,进入 ActionForm 类。
MVC 模式 2
Struts,MVC 2 执行
Struts 是合作类、 servlet 和 JSP 标记组成一个可重用的 MVC 2 设计的一套。这一定义意味着 Struts 是一个框架,而不是一个图书馆,但 Struts 也包含独立框架工作广泛标记库和实用程序类。图 5 显示的 Struts 的概览。图 5。Struts 框架概述
Struts 框架概述
从客户端浏览器的客户端浏览器的 HTTP 请求创建一个事件。Web 容器将响应的 HTTP 响应。
控制器
控制器从浏览器接收请求,并作出决定,将请求发送到何处。与高视阔步,控制器是实现为一个 servlet 的命令设计模式。Struts config.xml 文件配置控制器。
业务逻辑
业务逻辑更新模型的状态,并有助于控制应用程序流。与 Struts 这是通过一个 Action 类作为实际的业务逻辑的薄包装。
模型状态
模型表示应用程序的状态。业务对象更新应用程序状态。ActionForm bean 表示模型状态和一级会话或请求,并不在持久性的一级。  JSP 文件读取 ActionForm bean 使用 JSP 标记的信息。
视图
视图是一个简单的 JSP 文件。 有没有流逻辑,没有任何业务逻辑和没有模型信息只是标记。 标记是使 Struts 独特相比速度像其他框架的事情之一。
注:"想瘦"扩展操作类时。 Action 类应控制流和不应用程序的逻辑。通过将业务逻辑放在一个单独的包或 EJB 中,我们允许灵活性和重用。Action 类思考的另一种是作为适配器设计模式。行动的目的是要将一个类的接口转换成客户希望的另外一个接。适配器可以让类工作在一起,否则为 couldn_t 由于不兼容接口"(从设计模式的元素的可复用面向对象软件的 Gof)。在这种情况下客户端是一无所知我们特定的业务类接ActionServlet。 因此,Struts 提供了业务接口,它不理解,行动。 通过扩展的行动,我们使我们的业务接与 Struts 业务接兼容。(有趣的观察是,行动是一类而不是接。 行动开始作为一个接,随着时间的推移变成一类。没有什么是完美的)。
错误类的 UML 图 (图 6) 还包括 ActionError 和 ActionErrors。ActionError 封装的个别错误消息。ActionErrors 是 ActionError 类的视图可以访问使用标签的容器。是 Struts 的 ActionErrors 方式跟上错误的列表。
ActionMapping 类传入的事件通常是在 HTTP 请求,servlet 容器变成应答的形式。 控制器传入的事件来看,并调度对 Action 类的请求。Struts config.xml 确定哪些类控制器调用的操作。  Struts config.xml 配置信息翻译成 ActionMapping,放入一个容器 ActionMappings 一套。(如果你有没有注意到它,以 s 结尾的类就是容器)。ActionMapping 包含某一特定事件如何映射到具体行动的知识。
通过执行 () 方法,ActionServlet (命令) 将行动传递给 ActionMapping 类。这允许操作来访问这些信息来控制流。ActionMappings ActionMappings 是 ActionMapping 对象的集合。
truts 专业人员使用的 JSP 标记机制标签功能促进可重用的代码和 Java 代码摘要从 JSP 文件。此功能允许很好地集成到允许用标记编写的基于 JSP 的开发工具。
标记库为什么重新发明轮子或标记库吗?如果你找不到你在图书馆里需要的东西作出贡献。 此外,Struts 提供一个起始点,如果你正在学习 JSP 标记技术。
打开源你有开放的源代码,如能够看到的代码和其他使用审查代码库的每个人都有的所有优点。许多人都可以很好的代码审查。
如果您想要创建您自己的 MVC 实现,示例 MVC 实现 Struts 提供了一些见解。
管理问题空间、 分而治之是一个好的解决问题,使问题易于管理方式。 当然,剑是两面性的。 问题是更复杂,需要更多的管理。
Struts 利弊
青年高视阔步发展仍然处于初步形成。他们正在向着发行版本 1.0,但是与任何版本 1.0,它并不提供所有的钟声和口哨声。
更改框架正在大量快速的变化。0.5 和 Struts 1.0 之间发生了很大的改变。你可能想要下载最新的 Struts 夜间分布,以避免已否决的方法。在过去的 6 个月,见过 Struts 库从 90 k 增长到超过 270 万。我不得不修改我的例子几次由于 Struts,变化并不会保证我的例子将使用的 Struts 你下载的版本。
正确的抽象级别
是否 Struts 提供正确的抽象级别?适当的页面设计者级别是抽象的什么? 这是 64 k 问题。我们应该允许页面设计器访问 Java 代码在页面开发吗? 速度,像一些框架说不,并提供另一个语言学会为 Web 开发。有一定的合理性,限制在 UI 开发中的 Java 代码访问。最重要的是,给一个网页设计师,一点点的 Java,,他会使用很多的 Java。 我看到这种情况发生在 Microsoft ASP 开发的所有时间。在 ASP 开发中,你应该创建 COM 对象,然后写一个小的 ASP 脚本,来把它粘在一起。 相反,ASP 开发人员会疯狂与 ASP 脚本。我会听到"为什么等待一个 COM 开发人员创建它时可以直接与 VBScript 程序?"Struts 有助于限制在 JSP 文件中通过标记库所需的 Java 代码的数量。一种图书馆是逻辑管理标记条件生成的输出,但这不会阻止 UI 开发人员会用 Java 代码的坚果。 任何类型的框架你决定使用,你应该明白你是部署和维护框架的环境。当然,这个任务是说易行难。
Struts 的有限的范围是一个基于 Web 的 MVC 解决方案,为了用 HTML,JSP 实现文件和 servlet。
J2EE 应用程序支持 Struts 要求支持 JSP 1.1 和 Servlet 2.2 规范一个 servlet 容器。这独自一人不能解决你所有的安装问题,除非您正在使用 Tomcat 3.2。 我有大量的与网景 iPlanet 6.0,安装库的问题,据说是第一个 J2EE 兼容的应用服务器。 我建议访问 Struts 用户邮件列表归档 (请参阅参考资料) 当您遇到了问题。
复杂性问题分成部分介绍了复杂性。还有一些教育将不得不去了解 Struts 没有问题。 发生的不断变化,这可以有时令人沮丧。欢迎使用 Web。
在哪里我可以指出其他问题,例如,哪里的客户端验证、 适应性工作流和动态策略模式控制器?然而,在这一点上,它是太容易被评论家价格,和的一些问题是无关紧要的或者是合理的 1.0 版本。 Struts 团队在它的这样,Struts 可能有这些功能由你读到这篇文章,或不久之后。 Struts 的事物的变化,迅速在这个新时代的软件开发的未来。在不少于 5 年,见过从 cgi/perl,ISAPI/NSAPI 给,asp 程序用 VB,和现在 Java 和 J2EE 的事情。太阳正在努力适应变化到 JSP/servlet 的体系结构,就像他们在过去的 Java 语言和 Api。 您可以从 Sun 网站获取新的 JSP 1.2 和 Servlet 2.3 规格草案。此外,出现了一个标准标记库的 JSP 文件
收缩