



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种基于Struts的Web应用开发环境 摘 要 随着J2EE技术平台的逐渐成熟和完善,基于J2EE的Web应用开发也日益增加。本文讨论了一种基于Struts框架的Web应用开发环境WebPJ。它包含了两个部分:WebPJ-GUI和WebPJ-SDK。GUI部分主要以插件的方式集成到程序员熟悉的Java开发平台Eclipse中,并提供可视化界面以用于We工程的设计、开发、配置管理。SDK部分则封装了Struts的核心,提供了完整的控制器组件,低耦合性的模型框架结构,以及通过绑定HTML的方式自动生成代码框架和JSP。此外,
2、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工程实践,表明
4、既降低了工作量又提高了项目的成功率。 1 Struts与Java Web应用概述1.1 MVC设计模式 MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用,最近被Su公司推荐为J2EE平台的设计模式1。MVC强制性地把应用程序的输入、处理和输出分开。MVC中的三个核心模块:模型、视图和控制器,各自承担不同的任务,具有以下的优点: A) 多个视图能共享
5、一个模型,提高了代码的可复用性。 B) 模型是自包含的,与控制器和视图保持相对独立,所以可以方便地更改应用程序的数据层和业务规则。 C) 控制器可以用来连接不同的模型和视图去完成用户的需求,提高了应用程序的灵活性和可配置性。 1.2 JSP Model2 尽管MVC设计模式很早就出现了,但向Web应用的开发中引入MVC却相对困难,这是因为在JSP网页中执行业务逻辑的代码和HTML混杂在一起,难以分离出相对独立的模型。为了解决以上问题,Sun公司推出了两种规范,称为JSP
6、Model1和JSP Model2。Model1虽然在一定程度上实现了MVC但效果不理想,直至Model2的出现才得以改观。图1是JSP Model2的结构图2。 图1 JSP Model2 Model2综合了JSP和Servlet两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的业务规则处理。Servlet充当控制器的角色,负
7、责处理用户的请求,创建JSP页需要使用的JavaBean对象,根据用户请求选择合适的JSP页返回给实际用户。JSP页内没有逻辑,只负责检索原先由Servlet创建的JavaBean对象,从中提取动态信息插入到静态模版中。Model2清晰地分离了表达和内容,明确了角色定义以及开发者的分工。 1.3 Struts Struts实质上就是在JSP Model2的基础上实现的一个MVC框架。Struts为视图定义了一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签。模型则用来表示应用程序的状态和业务逻辑。对于大型应用来讲,业务通常由
8、JavaBean或EJB组件来实现。控制器是Struts框架的核心组件,ActionServlet在MVC模型中承担了中心控制台的角色,负责接收HTTP的请求信息,根据配置好的struts-config.xml信息,转发给适当的Action对象进行相关业务的处理3。下面的章节要讨论的WebPJ就是一种基于Struts并且以插件方式内嵌在Eclipse中的开发环境。 2 WebPJ2.1 体系结构 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境4
9、。Eclipse 附带了一个标准的插件集,包括 Java 开发工具JDT(Java Development Tools),此外还包括插件开发环境PDE(Plug-in Development Environment)。PDE组件允许构建与 Eclipse 环境无缝集成的工具。WebPJ就是为了方便开发人员开发基于Struts框架的Java Web应用程序而构建的一个Eclipse插件,它能和开发人员熟悉的Eclipse GUI无缝相接,提供给开发人员可视化的开发界面。WebPJ分为WebPJ-GUI和WebPJ-SDK两个主要模块。WebPJ-GUI主要是实现了可视化的界面,并负责项目的各类信
10、息的配置以及生成代码框架和JSP;而另一个模块WebPJ-SDK主要是进一步对Struts框架进行细化封装,并控制整个框架的运转。从图2可以看出WebPJ-SDK也是一个典型的MVC结构。 图2 WebPJ-SDK结构模型 该模型根据Struts框架也分成三个部分:控制器、视图和模型。当控制器的ControlCenter接收到来自客户端的请求时,WebPJ-SDK会通过定义的页面迁移关系图module.xml来找到对应的Action,接着由这个Action定位到具体的业务模型入口UIBO,由UIBO调用一组与自己相关的业务处理,即BLBO,处理完后的数据结
11、果集会通过数据模型DABO返回给视图部分的JSP,再由JSP组装后提交给用户端的浏览器。 2.2 控制器组件 WebPJ-SDK控制器主要完成的任务如下任务: A) 接收用户请求。 B) 根据请求,调用合适的模型组件来执行相应的业务。 C) 根据当前状态以及业务逻辑执行结果,选择合适的视图组件返回给用户。 WebPJ-SDK控制器在客户端和业务模型之间充当翻译的角色,还提供了一些通用的功能,如安全
12、、登录和其他各种特定的请求服务。当系统的这些功能样式发生变化的时候,不需要修改整个应用,而只需要替换一些控制组件。同时,由于所有的请求都要经过控制器过滤,所以降低了视图组件之间,以及视图和模型之间的相互依赖关系,从而提高了单个组件的独立性。 Struts框架是由ActionServlet依据用户配置的web.xml 和struts-config.xml来对业务模型进行定位的。WebPJ-GUI提供了一个可视化的设计和配置窗口,通过在代表不同页面的模块之间画迁移关系线,来产生一个Action,点击这条迁移关系线还可以配置该Action的基本定义和属性,参考图
13、4。WebPJ-GUI根据程序员设计的迁移关系以及设置的定义和属性,自动产生如下三个配置文件:web.xml、webpjconfig.xml和webpjextconfig.xml。 webpjconfig.xml采用了和struts-config.xml基本一致的布局。在<action-mappings>元素中,forward可以直接指定到某个JSP也可以指定到某个Action。如下代码所示,Action会指向对应的业务接口对象,并启动业务规则的处理。 public ActionForward doAction(
14、60; ActionMapping mapping, ActionForm form, HttpServletRequest request, Htt
15、pServletResponse response) throws Exception UIR00000S_InitBean objUIBean = new UIR00000S_InitBean(); return objUIBean.execute(mapping, form, request, response); 2.3 模型组件 Struts框架并没有为设计和创建模型组件提供现成的实现方案,但允许其使用其他框架的处理模
16、式,如EJB、ORM等。模型是整个应用中相当重要的一环,它包含了业务实体和业务规则,还要负责和数据层的数据交换。可以将模型放到整个系统的中间位置,往上是控制层和视图层,往下就是数据层,可以看出:视图层到数据层其依赖关系是逐渐加强的。WebPJ-SDK提供了如下的一些对象来实现模型组件的分割。 2.3.1 业务接口对象UIBO(User Interface Bean Object) 一个UIBO对应一个Action,它将Action发起的请求分解为以下几个步骤:数据准备、业务处理、视图设置和迁移。 数据准备(
17、doPrepareData):将来自页面和request的数据解析出来,形成需要的数据结构,并存入inputData对象备用。 protected int doPrepareData( ActionMapping mapping, ActionForm form,
18、60; HttpServletRequest request, HttpServletResponse response, Object inputData) throws Exception 业务处理(doBizLogic):根据Action请求处理的业务规则,决定使用哪些BLBO,输入数据
19、从inputData中提取,返回的处理结果集则存放于outputData数据对象中。 protected int doBizLogic( Object inputData, Object outputData) throws Exception 视图设置(doSettingView):将处理得到的结果集从outputData中解析出来,设置到页面上并返回给用户。 protected int doSettingView( ActionMa
20、pping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response,
21、60; Object outputData) throws Exception 迁移(forwardProcess):WebPJ-SDK会根据webpjconfig.xml中已经定义信息,迁移到指定的下个页面。一般情况使用“Default”,但是如果遇到特别的情况,程序员可以在这里指定迁移到哪个页面,例如规定处理某项业务的时间超过1分钟时迁移到指定的超时报警页面。 protected ActionForward forwardProcess( ActionMapping mapping, ActionForm form, HttpServletRequest request,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题开题报告:地方高校语言类专业区域文化课程的知识体系建构及数字化研究
- 课题开题报告:初中信息科技教学指南与配套资源的迭代研究
- 课题开题报告:产学研结合与高职院校良性发展
- 课题开题报告:标准化思想融入职业教育的方法研究
- 农田水利设施建设流转协议
- 中药材物联网追溯系统行业跨境出海战略研究报告
- 垫子套企业数字化转型与智慧升级战略研究报告
- 小分子药物合成工艺改进行业跨境出海战略研究报告
- 儿科用药智能生产设备企业制定与实施新质生产力战略研究报告
- Gps智能鞋企业县域市场拓展与下沉战略研究报告
- 广东离婚协议书范文2024标准版
- (完整版)幕墙施工方案
- 钢结构工程厂房、办公楼施工组织设计方案
- 24年追觅在线测评28题及答案
- 医学教材 超声引导下乳腺真空微创旋切(VABB)
- 2024年铁路线路工(高级技师)技能鉴定理论考试题库(含答案)
- 工程造价预算书
- 终止授权代理协议书模板
- 修建水坝施工合同模板
- 剑桥商务英语中级unit12
- 北师大版三年级下册除法竖式计算题练习100道及答案
评论
0/150
提交评论