一种基于struts的web应用开发环境(1)

上传人:bin****86 文档编号:60419203 上传时间:2018-11-16 格式:DOCX 页数:12 大小:22.13KB
返回 下载 相关 举报
一种基于struts的web应用开发环境(1)_第1页
第1页 / 共12页
一种基于struts的web应用开发环境(1)_第2页
第2页 / 共12页
一种基于struts的web应用开发环境(1)_第3页
第3页 / 共12页
一种基于struts的web应用开发环境(1)_第4页
第4页 / 共12页
一种基于struts的web应用开发环境(1)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《一种基于struts的web应用开发环境(1)》由会员分享,可在线阅读,更多相关《一种基于struts的web应用开发环境(1)(12页珍藏版)》请在金锄头文库上搜索。

1、从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果一种基于Struts的Web应用开发环境(1)中国编辑。摘 要 随着J2EE技术平台的逐渐成熟和完善,基于J2EE的Web应用开发也日益增加。本文讨论了一种基于Struts框架的Web应用开发环境WebPJ。它包含了两个部分:WebPJ-GUI和WebPJ-SDK。GUI部分主要以插件的方式集成到程序员熟悉的Java开发平台Eclipse中,并提供可视化界面以用于Web工程的设计、开发、配置和管理。SDK部分则封装了Struts的核心,提供了完整的控制器组件,低

2、耦合性的模型框架结构,以及通过绑定HTML的方式自动生成代码框架和JSP。此外,SDK还提供了验证组件和异常处理组件等其他功能。WebPJ通过一系列实际Web项目的开发检验,表明它能够缩短程序员理解和学习Struts框架的周期,同时WebPJ的使用也降低了程序员的工作量,提高了项目的成功率。 关键词 Struts;控制器;模型;视图0 引言 随着J2EE平台的逐渐成熟和完善,越来越多的程序员选择了Struts框架进行Web应用开发。因为Struts框架包含了软件框架和相关的软件包,能提高Web开发的效率。但对于实际的Web应用开发,Struts毕竟还是显得比较粗糙,使用过程中还需要熟练的程序员

3、付出大量的工作才能完成设计和开发工作。 本文将要论述一种基于Struts的Web应用开发环境WebPJ的设计和应用。WebPJ是一个无缝嵌入Eclipse平台的插件。WebPJ的GUI部分提供可视化的界面对Web项目进行设计、开发、配置和管理。即使程序员对Struts框架不很熟悉,通过简单培训也能进行开发和配置,从而缩短了学习周期。而WebPJ的SDK部分则提供了MVC的模式来控制和运转业务。程序员进行的开发是填充式的,故能降低程序员的工作量。 WebPJ经过一系列的Web工程实践,表明既降低了工作量又提高了项目的成功率。1 Struts与Java Web应用概述 MVC设计模式 MVC是Mo

4、del-View-Controller的简称,即模型-视图-控制器。MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用,最近被Sun公司推荐为J2EE平台的设计模式1。MVC强制性地把应用程序的输入、处理和输出分开。MVC中的三个核心模块:模型、视图和控制器,各自承担不同的任务,具有以下的优点: A) 多个视图能共享一个模型,提高了代码的可复用性。 B) 模型是自包含的,与控制器和视图保持相对独立,所以可以方便地更改应用程序的数据层和业务规则。 C) 控制器可以用来连接不同的模型和视图去完成用户的需求,提高了应用程序的灵活性

5、和可配置性。 JSP Model 尽管MVC设计模式很早就出现了,但向Web应用的开发中引入MVC却相对困难,这是因为在JSP网页中执行业务逻辑的代码和HTML混杂在一起,难以分离出相对独立的模型。为了解决以上问题,Sun公司推出了两种规范,称为JSP Model1和JSP Model2。Model1虽然在一定程度上实现了MVC但效果不理想,直至Model2的出现才得以改观。图1是JSP Model2的结构图2。 图1 JSP Model Model2综合了JSP和Servlet两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的业务规则处理。Servlet充当控制器的角

6、色,负责处理用户的请求,创建JSP页需要使用的JavaBean对象,根据用户请求选择合适的JSP页返回给实际用户。JSP页内没有逻辑,只负责检索原先由Servlet创建的JavaBean对象,从中提取动态信息插入到静态模版中。Model2清晰地分离了表达和内容,明确了角色定义以及开发者的分工。 Struts Struts实质上就是在JSP Model2的基础上实现的一个MVC框架。Struts为视图定义了一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签。模型则用来表示应用程序的状态和业务逻辑。对于大型应用来讲,业务通常由JavaBean或EJB组件来实现。控制器是Str

7、uts框架的核心组件,ActionServlet在MVC模型中承担了中心控制台的角色,负责接收HTTP的请求信息,根据配置好的信息,转发给适当的Action对象进行相关业务的处理3。下面的章节要讨论的WebPJ就是一种基于Struts并且以插件方式内嵌在Eclipse中的开发环境。2 体系结构 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境4。Eclipse 附带了一个标准的插件集,包括 Java 开发工具JDT,此外还包括插件开发环境PDE。PDE组件允许构建与 Eclipse 环境无缝集成的工具。W

8、ebPJ就是为了方便开发人员开发基于Struts框架的Java Web应用程序而构建的一个Eclipse插件,它能和开发人员熟悉的Eclipse GUI无缝相接,提供给开发人员可视化的开发界面。WebPJ分为WebPJ-GUI和WebPJ-SDK两个主要模块。WebPJ-GUI主要是实现了可视化的界面,并负责项目的各类信息的配置以及生成代码框架和JSP;而另一个模块WebPJ-SDK主要是进一步对Struts框架进行细化封装,并控制整个框架的运转。从图2可以看出WebPJ-SDK也是一个典型的MVC结构。图WebPJ-SDK结构模型 该模型根据Struts框架也分成三个部分:控制器、视图和模型

9、。当控制器的ControlCenter接收到来自客户端的请求时,WebPJ-SDK会通过定义的页面迁移关系图来找到对应的Action,接着由这个Action定位到具体的业务模型入口UIBO,由UIBO调用一组与自己相关的业务处理,即BLBO,处理完后的数据结果集会通过数据模型DABO返回给视图部分的JSP,再由JSP组装后提交给用户端的浏览器。 控制器组件 WebPJ-SDK控制器主要完成的任务如下任务: A) 接收用户请求。 B) 根据请求,调用合适的模型组件来执行相应的业务。 C) 根据当前状态以及业务逻辑执行结果,选择合适的视图组件返回给用户。 WebPJ-SDK控制器在客户端和业务模型

10、之间充当了翻译的角色,还提供了一些通用的功能,如安全、登录和其他各种特定的请求服务。当系统的这些功能样式发生变化的时候,不需要修改整个应用,而只需要替换一些控制组件。同时,由于所有的请求都要经过控制器过滤,所以降低了视图组件之间,以及视图和模型之间的相互依赖关系,从而提高了单个组件的独立性。 Struts框架是由ActionServlet依据用户配置的 和来对业务模型进行定位的。WebPJ-GUI提供了一个可视化的设计和配置窗口,通过在代表不同页面的模块之间画迁移关系线,来产生一个Action,点击这条迁移关系线还可以配置该Action的基本定义和属性,参考图4。WebPJ-GUI根据程序员设

11、计的迁移关系以及设置的定义和属性,自动产生如下三个配置文件:、和。 采用了和基本一致的布局。在元素中,forward可以直接指定到某个JSP也可以指定到某个Action。如下代码所示,Action会指向对应的业务接口对象,并启动业务规则的处理。public ActionForward doAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception UIR00000S_InitBean objUIBean = n

12、ew UIR00000S_InitBean();return (mapping, form, request, response); 模型组件 Struts框架并没有为设计和创建模型组件提供现成的实现方案,但允许其使用其他框架的处理模式,如EJB、ORM等。模型是整个应用中相当重要的一环,它包含了业务实体和业务规则,还要负责和数据层的数据交换。可以将模型放到整个系统的中间位置,往上是控制层和视图层,往下就是数据层,可以看出:视图层到数据层其依赖关系是逐渐加强的。WebPJ-SDK提供了如下的一些对象来实现模型组件的分割。 业务接口对象UIBO 一个UIBO对应一个Action,它将Action

13、发起的请求分解为以下几个步骤:数据准备、业务处理、视图设置和迁移。 数据准备:将来自页面和request的数据解析出来,形成需要的数据结构,并存入inputData对象备用。protected int doPrepareData( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, Object inputData) throws Exception 业务处理:根据Action请求处理的业务规则,决定使用哪些BLBO,输入数据从inputData中提取

14、,返回的处理结果集则存放于outputData数据对象中。protected int doBizLogic(Object inputData, Object outputData) throws Exception 视图设置:将处理得到的结果集从outputData中解析出来,设置到页面上并返回给用户。protected int doSettingView( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, Object outputData) th

15、rows Exception 迁移:WebPJ-SDK会根据中已经定义信息,迁移到指定的下个页面。一般情况使用“Default”,但是如果遇到特别的情况,程序员可以在这里指定迁移到哪个页面,例如规定处理某项业务的时间超过1分钟时迁移到指定的超时报警页面。protected ActionForward forwardProcess( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, int result) throws Exception return (Default); 业务规则对象BLBO BLBO是对真实世界的一个抽象,它可以代表业务对象的状态、规则或行为,是应用系统的核心所在。例如,登录一个账单管理系统就可以称为一个行为;规则可以定义为:第一登录的用户名和密码要和DB中保存的数据一致;第二根据不同的用户权限级别控制可访问的资源。登录成功或失败就可以看作为状态。 数据访问对象DABO 进行业务处理时可能需要从DB或者文件中得到持久化的数据进行运算,最后还可能需要把运算的结果持久化保持到D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号