用XSLT和XML改进Struts - 编程入门网
用XSLT和XML改进Struts时间:2010-12-10摘要 Struts是一个优秀的Java Web开发框架。Struts是Apache项目之一,现在Struts已经在Java开发团体中得到了广泛的支持。在这篇文章中Julien Mercay 和Gilbert Bouzeid将向我们介绍Struts的处理流程、描绘Struts框架,最后提出了Model 2x的设计方法。Model 2x用XML/XSLT替换掉了原来的表现层中的JSP页面。Model 2x通过这种方式更加明晰地划分了业务逻辑层和表现层。 正文 自从Servlet API发布以来,Java开发人员使用了不同的技术来开发Web应用程序。Web开发人员已经认识到了Model 2的优点。Model 2 指的是基于MVC模式的WEB开发框架。Model 2能把应用逻辑层和表现层较好地区分开来。Struts构建在Model 2 之上,它向Java开发人员提供了一个普通的控制器Servlet,还有集中式的资源配置、资源管理以及错误处理等功能。 这篇文章中我们引入了Model 2x。Model 2x可以将逻辑层和表现层更好地分离。我们先介绍Model 1和Model 2,然后讲述一下Struts是如何实现MVC架构的,最后向读者展示一下如何通过XML、XSLT来对现存的模式加以改进。 Model 1 理解Model 1是十分重要的,如果不熟悉Model 1将很难理解我们在文章中介绍的其他几个架构。Model 1的基础是JSP文件。JSP从Http请求中取得参数,调用所需的业务逻辑,处理Http对话,然后生成HTML页面。 一个完整的Model 1项目包括一组JSP文件(这些文件大部分都是彼此独立的)、一组所需的Java类和其他组件。一些早期的Web开发技术比如ASP、PHP都使用类似的模式来开发的。 Model 1主要也许是唯一的优势就是简单。Model 1中业务逻辑和显示逻辑混合在JSP页面中没有进行抽象和分离,所以在进行快速和小规模的应用开发时,有非常大的优势的。但用Model 1 开发复杂的项目的开发时,将不可避免地导致项目管理的困难。 Model 2, MVC, and Struts/JSP 图1 图1说明的是MVC架构中的三个部分,以及它们在Struts/JSP中的实现。 控制器(Controller):Struts的最主要的部件就是一个普通的控制器Servlet。控制器是每一个发送到Struts的Http请求的入口点。控制器把所有的请求经解释后分发action。这些action是Struts Action类的子类。由开发人员负责实现它们。控制器也会自动的把Http请求中的参数加入到Form bean中。Action负责实现核心的业务逻辑,比如做EJB调用,通过Java Bean访问模型(model)。在Struts中可以通过定义一个XML文件来描述请求URI、具体业务逻辑处理、代表客户提供的数据的Form组件三者之间的映射关系。控制器的就是通过这个XML文件来定义的。 用XSLT和XML改进Struts(2)时间:2010-12-10模型(Model): Java beans就是模型的代表。这些bean分成3类: 窗体Bean(Form Bean)对象用来包装HTML表单数据,当然也包括通过URL请求传递过来的数据。举例来说,一个登陆页面可能有两个属性(Property)login和password。Form Bean由Struts的ActionForm类扩展而来。 请求Bean(Request Bean)拥有用来生成HTML页面的所需的信息。例如在一个表现银行账户状态的页面中,请求Bean就应该有账户相关信息以及近期的交易记录等等。 会话Bean(Session Bean)拥有同一用户在不同Http请求间共享的对话信息。 视图(View): Struts控制器会把Http请求转发到作为MVC视图的JSP文件。这个JSP文件可以访问窗体Bean、请求Bean、会话Bean,生成结果文档(通常是一个HTML文档),并发送到客户端。Struts提供了四组JSP标志库。 HTML:用来生成HTML标志,特别是用来自模型的数据填写HTML表单。 Bean: 操作Bean。 Logic: 根据Bean值实现逻辑结构。 Template:处理页面模板。 通过Struts标志的使用,你可以避免在视图中使用任何的Java代码。 St |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |