上创业。
第二,销售时间不受限制,无需专人看守,却可时刻营业。
第三,销售地点不受限制,小商店也可做成比较大的交易。
第四,网上商店人气旺,利润没上限。网上客流量比较多,只要是商品有特色,经营合法,电子商城每天将为企业额外带来成千上万的客流量,大大增加销售收入。
2.2.2 技术可行性
1、Model1和Model 2
在实际开发中,为了分离页面的表现逻辑和业务逻辑,使程序各部分的职责更加清晰,增强代码的可维护性,SUN公司在JSP的早期规范中制定了两种JSP开发模型,分别为Model 1和Model 2[5]。
Model 1使用JSP+JavaBean技术将页面显示和业务逻辑处理分开。JSP实现页面的显示,JavaBean对象用来承载数据和实现业务逻辑。模型1的结构如图2.1所示。
图2.1 模型1的JSP架构
在模型1中,JSP页面独自响应请求并将处理结果返回给客户,所有的数据通过JavaBean来处理,JSP实现页面的显示。模型1将页面显示和业务逻辑进行了分离,但是在JSP页面中仍然需要编写流程控制和调用JavaBean的代码,当需要处理的业逻辑非常复杂时,这种情况会变得更加糟糕。在JSP页面嵌入过多的Java代码将会使程序变得异常复杂,对于前端页面设计人员来说,大量的嵌入代码使他们无从下手工作。
在模型1中,JSP页面嵌入了流程控制代码和部分的逻辑处理代码。在实际开发中,我们可以将这部分代码提取出来,放到一个单独的角色中,这个角色就是控制器角色,而这样的Web架构就是模型2。
在JSP模型2中,控制器的角色是由Servlet来实现,视图角色由JSP页面来实现,模型的角色由JavaBean来实现。模型2的架构如图2.2所示。
图2.2 模型2的JSP架构
其中Servlet充当控制器的角色,它接受请求,并且根据请求信息将它们分发给相应的JSP页面来产生响应。Servlet控制器还根据JSP视图的需求生成JavaBean的实例并输出给JSP环境。
2、MVC模式
模型2符合MVC架构模式,即模型-视图-控制器(Model-View-Controller)。
MVC架构有助于将应用程序分割若干逻辑部件,使程序设计变得更加容易。在MVC架构中,一个应用被分成三个部分:模型(Model)、试图(View)和控制器(Controller)。
模型:模型代表应用程序的数据以及用于访问控制和修改这些数据的业务规则。当模型发生改变时,它会同时视图,并为视图提供查询模型相关状态的能力。同时,它也为控制器提供反问封装在模型内部的应用程序功能的能力。
视图:视图用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视图负责维护数据表现的一致性。视图同时将用户的请求通知控制器。
控制器:控制器定义了应用程序的行为。它负责对来自视图的用户的请求进行解释,并把这些请求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户的请求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户请求和模型行为的结果,控制器选择一个视图作为对用户请求的响应。
在MVC应用程序中模型、视图、控制器三部分的关系如图2.3所示。
图2.3 MVC模型、视图、控制器的关系图
MVC模式不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
3、Struts框架
Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助Java 开发者利用J2EE开发Web应用。和其他的Java架构一样,Struts 也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及Jsp tag- -lib组成。基于Struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型[5]。
Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,如 JDBC / EJB,以及其它第三方类库,如 Hibernate / IBATIS,或者 Object Relational Bridge(对象关系桥)。在视图层,Struts能够与JSP,包括 JSTL与JSF,以及Velocity 模板,XSLT与其它表示层技术。采用Struts可以简化遵循MVC设计模式的Web应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点,并具有强可扩展性的Web应用,极大的节省了时间。
Struts的工作流程如图2.4所示,所有的请求都提交给ActionServlet来处理[6]。
图2.4 Struts的工作流程图
在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放在各种配置对象中,例如,Action的映射信息存放在Action Mapping对象中。当Action Servlet接收到一个客户请求时,将执行如下流程。
(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存在ActionForm对象中。
(3)根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。
(4) 如果ActionForm中的validate()方法返回值是null或者返回一个不包含Action Message的ActionErrors对象,就表示表单验证成功;如果ActionForm的validate()方法返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发个包含用户提交表单的JSP组件,在这种情况下,不会再创建Action对象并调用Action的execute()方法。
(5)ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建一个这个实例,然后调用Action的execute()方法。
(6)Action的execute()方法返回一个ActionForward对象,再通过ActionServlet把客户端请求转发给ActionForward对喜爱那个指向的JSP组件。
(7)ActionForward对象指向的JSP组件生成动态网页,返回给客户。
通过前面几小节对技术可行性的分析,考虑到开发的复杂度、难度以及日后的维护等问题,本网站将采用JSP模型2进行架构,利用Struts框架实现模型2的MVC模式,这将大大减少开发过程中的复杂度和日后维护的难度。
4、开发环境的构建
硬件平台:
* CPU:AMD 1.61GHz。
* 内存:256MB以上。
软件平台:
* 操作系统:Linux(Ubuntu8.10)。
* 数据库:Mysql。
* 开发工具包:JDK Version1.6。
* Web服务器:Jakarta Tomcat、Apache。
* 浏览器:Firefox3.0。
* 分辨率:最佳效果1024×768像素。
2.3 系统流程图
在销售网站系统中,对于不同的角色,他们所承担的任务各自不同,系统流程图也不一样。通过前面对系统的需求分析和可行性分析,可知本系统包括了面向会员的客户端流程图和面向系统管理员的流程图两部分,客户端用户只要是登录网站后,对新品上架、特价商品和销售排行等进行查看,如果是非注册用户,则可以进行用户注册,当注册成为正式用户后并
上一篇:
基于J2EE网上书城研究及其应用毕业论文(word文档)
下一篇:
基于JSP邮件收发系统论文