ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:340.61KB ,
资源ID:16135629      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16135629.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用J2EE模式构建网站Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

利用J2EE模式构建网站Word文档格式.docx

1、重构人员采用一组与特定应用系统领域和业务有关的组件或顶层中的组件系统来构造每个应用系统。结合J2EE,让我们首先了解J2EE体系中的组件构成情况,如图2所示。图2J2EE组件打包策略在上图中可以看出,不同的组件归档到不同的文件包中,这样就保证了一个组件的插拔不会影响到其它的组件。根据应用系统组件的功能,我们可以把它们分为动态组件和静态组件。静态的组件包含网页文件,主要用于放置教学资料和参考文章。动态组件则包括各种功能模块,如论坛系统、模拟测验系统等。应用系统组件之下是于特定业务有关的组件。在这里,我们可以添加非Java编写的一些程序,用于处理特定内容下的操作,比如模拟测验系统中的出题模块。当然

2、,要考虑到上层组件调用的正面接口问题。对于这层组件,我们能够随时替换,只要其提供的数据符合上级正面的要求。以上两级组件之下是J2EE应用服务器和操作系统,整体如图3所示。图3 计算机组成原理网站系统组件架构图(三)利用J2EE模式开发组件系统下面着重介绍开发过程中使用的J2EE模式,这些模式都是通用类型的。本系统采用MVC开发模型,即Model-View-Controller。Model是指应用程序的数据,以及对这些数据的操作;View是指用户界面;Controller负责用户界面和程序数据之间的同步。这种模型的好处在于分离不同功能的代码,便于以后的维护,还有利于在项目小组内按照小组成员各自的

3、擅长进行分工,有利于三个部分并行开发、加快项目进度。为了使各开发人员协调一致,为其他组件提供一致和标准的正面,增强系统的可维护性和可复用性,我们广泛采用了SUN公司提出的基于MVC的设计模式。图4是用户注册模块的UML图,我们将结合这个模块具体阐述各模式的特点和在本系统中的实际应用。图4 表示层模式明确了所采用的体系和模式,下面具体设计类的属性和方法,通过设计完善的接口和继承、重载等方法进行重构。模块的UML的类图表示如下:图5 模块的UML的类图结合上图,让我们看看这个模块中都运用了哪些模式。1. 表示层模式系统的表示层集中了MVC模式中的View与Controller。该系统用JSP代表V

4、iew,用Servlet代表Controller。在Controller这一模块中,又采用了视图助手、分发者与值对象模式,以增强系统的模块化,提高维护性。(1)前端控制器控制器通常表现为Servlet形式,其UML表示如下:图6 前端控制器根据Model-View-Controller的开发思想,使用控制器作为处理请求的最初联系点。该控制器管理着请求的处理,包括调用安全服务,比如验证和授权、委托业务处理、管理合适的视图选择、处理错误,以及管理内容创建逻辑的选择。也可以把前端控制器看成一个触发器,由它来启动流程。下面是功能代码的样本。其中出现的RegisterHelper、Command等类,接

5、下来会有详细介绍。 public void performTask(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException RegisterHelper rh=new RegisterHelper(request,response);/启动注册视图助手 Command command=rh.getCommand();/由视图助手中获得并初始化C

6、ommand CustomerBean cb=rh.getCustomerBean();/由视图助手中获得并初始化值对象 request.setAttribute(customerbean,cb); String dispatcher=rh.getDispatcher();/由视图助手中获得并初始化分发者type,rh.getType();/设置上下文属性 try command.execute(Helper)rh);/执行业务代码 catch(javax.ejb.DuplicateKeyException de) errorbean,new ErrorBean(对不起,已经有人注册了该用户名

7、!);/注册重名处理 dispatch(request,response,dispatcher);/分发并移交控制权 return; catch(Exception e) 对不起,数据库出错!/出错处理 优点:通过集中化决策点和控制,控制器有助于减少嵌入在JSP中Java代码(Scriptlet)的数量,保持View功能的纯洁性。它的位置如图5中Controller所示。(2)视图助手表示层更改经常发生,而且当业务数据访问逻辑和表示格式化逻辑被混杂时,表示层更改很难开发和维护。这使系统灵活性更差,更缺乏可用性,而且对变化的适应性更弱。图7 视图助手视图包含格式化代码,把其处理责任委托给其助手类

8、。助手也存储该视图的中间数据,如表单、URL参数等,并且充当业务数据适配器。public class RegisterHelper implements Helper static String dispatcher = RegisterDispatcher; private CustomerBean customer = null; private String type = null; public RegisterHelper( javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletRes

9、ponse response) setType(request); setCustomerBean(request); /* * 定义页面类型:HTML or XML */ public void setType(javax.servlet.http.HttpServletRequest request) type = request.getParameter(); * 获取Command public Command getCommand() RegisterCommand rc = new RegisterCommand(); return rc; * 向值对象中填充数据 public v

10、oid setCustomerBean(javax.servlet.http.HttpServletRequest request) customer = new CustomerBean(); customer.setUsername(request.getParameter(username customer.setPassword(request.getParameter(password customer.setEmail(request.getParameter(email customer.setTruename(request.getParameter(truename cust

11、omer.setId(request.getParameter(id customer.setService(this.setService(request); * 获取值对象 public CustomerBean getCustomerBean() return this.customer; * 获取分发者 public String getDispatcher() return this.dispatcher; * 获取类型 public String getType() return type;在助手中而不是在视图中封装业务逻辑会增强应用程序的模块化,并且更有利于组件重用。助手有大量的

12、责任,包括收集视图和控制需要的数据,以及存储中间模型。它的位置如图5中Helper所示。(3)Command模式Command中包含纯业务代码,如注册、登陆、检验等。在样例模块中,它的职责是将注册信息传递给Entity Bean。图8 Command功能代码如下所示: public void execute(Helper helper) throws Exception RegisterHelper rh = (RegisterHelper) helper;/获取视图助手 CustomerBean cb = rh.getCustomerBean();/从视图助手中获取值对象 ServiceLo

13、cator sl = ServiceLocator.getInstance();/初始化服务定位器 CustomersHome ch = (CustomersHome) sl.getHome(ServiceLocator.Services.CUSTOMERS);/从服务定位器中获取Entity Bean本地接口 try Customers customers = ch.create(cb);/将注册信息导入数据库 catch(javax.ejb.DuplicateKeyException e) throw new javax.ejb.DuplicateKeyException(); catch(Exc

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1