1、目 录摘 要1ABSTRACT2第1章 绪论31.1 开发背景及意义31.2 系统开发工具简介31.3 MVC模式及架构概述41.4 J2EE简介5第2章 系统分析62.1 可行性分析62.2 需求分析7第3章 系统的概要设计83.1 总体框架83.2 模块功能简介93.3 数据流程9第4章 系统的详细设计及实现114.1 详细设计114.1.1 前台用户功能模块设计114.1.2 后台用户功能模块设计124.2 数据库设计144.2.1 数据分析144.2.2 数据库逻辑设计154.3 在struts框架下系统功能模块的实现174.3.1 前后台公共模块实现174.3.2 前台模块功能实现1
2、94.3.3 后台模块功能实现20总结与展望21参考文献22摘 要随着互联网和宽带上网的普及,电子商务在中国更是异军突起,并日益渗透到人们的日常生活中。网上商品交易更是其重要内容。各种网上商品交易网站层出不穷。本课题设计的目标是实现一个基于MVC(Module-View-Controller)模式的电子商城网站。论文先介绍了开发项目所用到的关键技术,接着从用户需求、经济和技术等三个方面对系统进行分析。在概要设计中,根据系统分析的结果,把系统分为前台和后台两大模块。根据前台和后台用户的不同需求,把前台细分为会员登录注册,商品查询,商品购买,订单查询等模块,把后台细分为管理员登录,商品设置,订单设
3、置等模块。详细介绍了在基于MVC模式的struts框架下各个模块的实现过程,且以开发过程为基础对在 struts框架下实现的系统所具有的可重用性、可维护性和可扩展性等优势进行了分析。关键词 eclipse开发工具,电子商城,struts框架,网站安全 ABSTRACTWith the popularization of Internet and accessing broadband network, e-commerce in China has suddenly appeared, and increasingly penetrates into daily life. Online co
4、mmodity trading is an important. Online commodities trading website is increasing day by day.The aim of this subject is designing an electronic mall site based on the MVC (Module-View-Controller) model. Firstly, this paper introduced the key techniques for using techniques of the development project
5、s. Then it analyzed the system according to users needs, economic environment and techniques. In the summary design and according to the analysis results, system is divided into two modules. According to the different needs of users, requirements are divided into the sub-member login registered modu
6、le, merchandise query module, purchase module, and orders inquiry module. Background is divided into sub-administrator login module, setup of merchandise module, and orders module. This paper described implementation process of various modules based on the MVC model struts framework. And according t
7、o the development, process analyzes the system reuse, maintainability, and scalability advantages based on the struts framework in detail.Keywords eclipse development tool, electronic mall, struts framework, website security第1章 绪论互联网从它出现开始就不仅改变了信息传递的方式,同时改变着企业的运营模式,管理模式,影响着人们的生活观念,改变着人们的习惯。网络使人们足不出户
8、就能获取各方面的信息,而电子商城的出现更是人们足不出户就可以进行商品交易活动。1.1 开发背景及意义互联网的兴起从本质上改变了整个社会的商品交易方式,国内各大企业从上个世纪90年代互联网兴起之时,就产生了通过网络进行销售经营商品的想法。但是由于在互联网上企业的信誉难以认证、网络法规政策不健全、物流不发达等一系列的原因,限制了网上交易发展的步伐。进入21世纪以后,随着整个社会的发展、进步,制约网上交易的各个瓶颈问题逐一被击破,各企业也纷纷的加入到电子商务的洪潮之中。网站的主要目的就是通过网站来推广互联企业的产品和服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和订单处理功能。从长期
9、的战略目标来说,网站不仅仅是产品和服务的推广,而且是通过Internet、企业内部网(Intranet)和企业外部网(Extranet),将买家与卖家、厂商和合作伙伴紧密结合在了一起,因而消除了时间与空间带来的障碍。系统主要分为前台和后台。前台包括产品的展示及会员购物等模块,后台是管理界面,主要包括商品信息、会员信息、订单信息和公告信息的常规设置。1.2 系统开发工具简介系统采用Eclipse作为开发工具,SQL server 2000作为数据库,java作为开发语言。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开
10、发环境。而且,Eclipse附带的一个标准插件集,包括Java开发工具(Java Development Tools,JDT)和插件开发环境(Plug-in Development Environment,PDE)。1.3 MVC模式及架构概述近年来,随着网络技术和Internet的迅速发展,基于B/S结构的Web应用,因其具有易用性、通用性和良好的可扩展性等优点而迅速发展,正逐渐成为各类应用信息系统市场的主流。但是,在Web应用系统中,存在程序可重用程度低、维护工作繁琐而困难、程序应变能力较弱等不足。为了提高程序的可重用性、可维护性、可扩展性、优化设计模式、提高软件的生产效率,MVC模式应运
11、而生。MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中构建用户界面。M代表模型Model,V代表视图View,C代表控制器Controller。MVC设计模式的目的是增加代码的重用率,减少数据表达、数据描述和应用操作的耦合度,同时也使软件可维护性、可修复性、可扩展性、灵活性及封装性大大提高。模型是软件处理逻辑的内在抽象,封装了业务功能的数据和逻辑关系,独立于具体的界面表达和I/O操作。视图是人机对话的界面,负责数据的输入与输出。一方面,为用户提供输入界面;另一方面,从模型获取所要显示的数据,再对这些数据进行格式化加工,最后显示到终端。控制器是模型和视图的
12、桥梁,用户请求被提交后,先传给控制器,控制器根据请求的类别来选择调用模型,模型完成请求的任务后,将加工后的信息传给控制器,再由控制器来决定选择视图,最后将视图信息输出给用户。MVC设计模式具有条理清晰,易于扩展,运用可分布的特点,因此在构建Web信息系统中具有显著的优势,具体表现为以下几点:模型、视图与控制器的分离,使一个模型可以被多个视图调用,提高了模型的利用率。MVC设计模式可以使系统方便地支持其他新的客户端类型,除了运行在桌面型的浏览器外,还可以运行在PDA、带PDA功能的手机、WAP浏览器上。由于MVC设计模式分离了数据的控制与显示,从而可以使开发者更容易协作开发,后台开发人员可以专注
13、业务逻辑的编程,前台开发人员专注于用户交互的界面,从而缩短产品的开发周期。1.4 J2EE简介J2EE(Java 2 Platform Enterprise Edition)是Sun Microsystems公司开发的一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关复杂问题的体系结构。由于J2EE的开放性、扩展性及各大厂商的支持,正逐渐成为Web应用软件的开发标准。J2EE框架用JSP/Servlet/EJB的3层架构来分离Web信息系统的显示/业务/数据3层逻辑,实践证明这种简单的分离在Web应用开发中使得HTML和Java强耦合在一起,显示逻辑和业务逻辑混淆不清,Web界面
14、和业务逻辑交叉在一起,由此,出现了许多J2EE的补充框架。下面简单介绍其中一个开源的补充框架Struts。Struts是Apache Jakarta项目的一个顶级项目,由ASF发起与赞助,他采用了基于Web的MVC模式,能更好地帮助Java开发者利用J2EE开发Web应用。Struts由一组相互协作的类(组件)、Serlvet以及JSP Tag Lib组成,其中,Servlet用于HTTP请求的分配及JSP的调用;标记库用于页面的动态生成;实用类库用于XML的解析及Bean的属性设定。第2章 系统分析需求分析是系统分析和软件设计之间的重要桥梁,良好的分析有助于避免早期错误,提高软件生产率和开发
15、效率。本章从经济和技术两个方面对系统的可行性进行分析,按照用户对系统的要求进行系统的需求分析。2.1 可行性分析在互联网环境下的外部市场环境日趋成熟,传统产业的影响不可忽视,但是近些年来中国使用互联网的人数呈指数上升,这说明互联网市场会有很大的发展空间。随着经济的发展和人们思想意识的逐渐开放,更多的人加入到买电脑上网的行列。网上购物人群的迅速扩大,各种网络设施的完善,经济的持续发展及人们生活水平的提高,网上购物已逐渐成为人们消费的习惯。但是目前国内还没有具有相当规模和专业程度的网上购物企业,国内网络消费群体尚为到位,网络消费环境尚不完善,与传统购物环境相比,网上购物的售后服务,质量保障等方面仍
16、让消费者不放心。但正是这些不健全不完善为网上购物提供了较大的发展空间。在开发技术上更是没有任何问题的,任何成熟的Web应用开发技术都可用开发网上购物网站。J2EE规范的补充框架struts就为开发网上商城这样的项目提供了较好的技术支持,基于struts框架可以使我们的项目易扩展,易维护,同时提供了较好的安全性。随着国内网络产业的反战和网络法律法规的健全,网络商城必然成为主流的消费方式。众多厂家也会认识到网上商城将会为他们带来无可比拟的益处,可以为企业降低成本,提高利润,同时简化管理。不管从市场需求还是技术支持,网上商城这样的项目都是可行的。2.2 需求分析通过分析我们可以得知用户对目标软件系统
17、在功能、行为、性能、设计约束等方面的期望,从而有助于我们开发出用户满意的产品。前台用户需求分析,用户除了可以查询商品的所有基本信息(如商品名价格及有关商品信息描述)外,还能了解商品的最新动态,商品的销售排行,最新商品和特价商品的查询。用户可以进行购物,查看购物车及查看订单的操作。用户需要登录和注册个人账户,同时可以修改个人信息。要求数据的安全性,完整性。要有安全保密、上下级数据一致性功能,要采用严格的用户权限管理。各单位只能拥有自己相应的操作权限,不可越权操作。各单位只可操作本单位的数据,不可修改甚至浏览其他单位的数据。后台管理员需求分析,管理员需要对商品进行设置包括查看、删除、添加、修改等操
18、作。管理员能对会员信息进行查看和删除,对订单信息能够进行查看、出货、删除,对公告和友情链接进行设置,对数据的安全性和完整性有着严格的要求。第3章 系统的概要设计本章以系统需求分析的结果为基础对系统的整体框架做出概要设计,将系统分为前台和后台两大模块,并分别对两模块进行子模块的划分,简要分析各个模块功能。最后根据业务需求作出系统的数据流程图。3.1 总体框架根据系统的前台用户对系统的操作和后台用户对系统的管理和维护,系统前台可初步划分为用户注册登录模块,会员资料修改模块,购买商品模块,查看订单模块,查看销售排行模块,查看商城公告模块具体如图3-1所示。后台可划分为管理员登录模块,会员设置模块,管
19、理员设置模块,商品设置模块,订单设置模块,友情链接模块,公告设置模块具体如图3-2所示。前台用户功能用户注册登录会员资料修改购买商品查看订单查看销售排行查看商城公告图3-1 前台用户功能模块图3-2 前台用户功能图后台用户功能管理员登录商品设置会员设置后台管理员设置订单设置公告设置友情链接设置3.2 模块功能简介根据需求分析对前台和后台各个子模块进行简要分析,对子模块功能进行简要设计。前台模块实现了用户注册、会员资料修改和商品购买等功能。用户注册登录,用于用户注册个人信息和登录;会员资料修改,用户在登录以后可对自己的信息进行修改;商品购买,用户可以将购买的商品添加进自己的购物车;查看订单,用户
20、可以查看自己一定时期内的订单详细信息。查看销售排行,用户可以查看当前销量前几名的商品;查看商城公告,用户可以查看公告信息以了解商城最新信息。后台模块实现管理员登录、商品设置、会员设置、订单设置等功能。管理员登录,用于管理员登录;商品设置,用于管理员对商品的查看、添加、删除;会员设置,用于管理员对会员信息进行管理;后台管理员设置,用于高级管理员对其他管理员信息进行管理;订单设置,用于管理员对订单查看、修改、删除;友情链接设置,用于修改、删除和添加友情链接;公告设置,用于更新公告信息。3.3 数据流程根据用户需求和功能模块及业务流程的分析,可得系统的总体数据流程。前台用户主要是对用户信息的查询和修
21、改,对商品信息、订单信息和公告信息的查询;后台用户主要是对商品信息、会员信息、订单信息的设置和维护。具体数据流如图3-3所示。图3-3 系统数据流图第4章 系统的详细设计及实现本章主要实现系统模块职能的划分,各个模块的详细设计实现及根据系统数据流图进行的数据库的设计。4.1 详细设计根据需求分析本系统整体分前台和后台两大模块。前台用户主要功能模块包括:会员登陆注册、会员资料修改、购买商品、查看订单、查看销售排行、查看商城公告。后台用户主要功能模块包括:管理员登陆、商品设置、会员设置、后台管理员设置、订单设置、公告设置、友情链接设置、退出后台。下面分别从前台和后台进行详细功能设计。4.1.1 前
22、台用户功能模块设计根据概要设计对前台模块进行细化,经过对用户需求和业务逻辑的分析,前台各个模块的详细设计如下。会员登录注册模块主要有登录注册功能。登陆功能主要用于会员的登陆,如果已经是网站的会员,则只需输入“用户名”和“密码”即可进行进入系统的事务,然后用户可以以会员的身份方可在网站上进行购物。注册功能主要用于非会员的首次登录,注册后才能以会员的身份登录进行网站购物。会员资料修改模块实现会员登录之后可以对会员资料进行修改的功能。输入原来的密码,新密码,密码确认,真实姓名,年龄,职业和Email地址可以直接进行修改。但会员名称不可以修改。购买商品模块可查看相应的商品信息。如果会员想购买此商品,将
23、商品放入购物车便可以继续购买商品。如果购物结束,可以查看购物车,进入如图4-1所示的购物车界面。图4-1 购物车如果同一种商品要购买多个,只需把商品数量修改相应的数量即可。最后去收银台结账。订单编号由系统自动生成,输入联系电话、联系地址和备注信息,付款方式和运送方式通过系统给出的方式进行选择。查看订单模块功能主要是返回相应用户的订单信息,如果用户要查询订单,系统会根据要求显示如图4-2所示的相应的订单信息。如果需要系统可显示订单的详细信息,列出订单所对应的全部商品。图4-2 查看订单销售排行模块主要显示相应的商品销售排行的功能。商城公告模块实现对商城公告中的任意一个公告可查看其相应的详细信息。
24、4.1.2 后台用户功能模块设计根据管理员对系统的需求和对管理员权限的限制,后台模块功能详细设计如下。后台登录模块主要实现管理员输入账号和密码后才可进入后台管理模块,并且判定管理员的权限。商品设置模块主要实现如下所述功能,系统根据要求自动显示相应的商品列表如图4-3所示。该模块可以实现商品信息的查看、添加、修改和删除操作。图4-3 商品设置查看功能用于显示相应商品的详细信息,在此功能中还可设置特价商品,对特价商品的价格进行预设置。添加功能实现对库中商品的添加功能,进入如图4-4所示的商品添加模块。图4-4 商品信息添加选择所属大类别和所属于小类别和要添加的商品类别,输入商品名称,生产厂商,商品
25、定价和商品描述即可添加新的商品。删除功能实现商品信息的删除。会员设置模块实现自动显示会员信息的详细列表。在列表中可以对会员信息进行查看及删除。后台管理员设置模块实现自动显示管理员的信息列表。根据权限设置,只有高级管理员可对次模块操作。高级管理员可进入管理员信息添加模块,添加管理员账号、密码、姓名,对管理员信息进行修改,对其他管理员信息进行删除操作。订单设置模块可自动显示相应的订单列表。在订单列表中可以对订单信息进行查看、出货及删除操作。查看功能是对所有的订单进行查看,同时对相应订单的详细信息进行查看。出货功能可以对相应订单是否出货进行设置。删除功能实现对相应订单信息的删除操作。公告设置,在此模
26、块中系统自动显示相应的公告信息列表。在列表中可以对公告信息进行查看、添加、修改及删除操作。友情链接设置,在此模块中实现对友情链接的查看、添加、删除和修改。查看功能可根据相应信息的查看图片查看相应网站的图片。输入网站名称和网站地址信息,即可进入如图4-5所示的添加网站图片的模块。上传图片,完成友情链接的添加。图4-5 添加网站图片退出后台模块实现用户退出后台管理模块,且返回到前台首页。4.2 数据库设计一个系统的好坏,数据库的设计起着至关重要的作用,本节我们通过对数据的分析,设计一个安全、高效的数据库,尽量使数据冗余降为最低。4.2.1 数据分析用户的需求具体体现在对信息的要求和对处理的要求上,
27、对网站前台和后台系统的仔细分析和对信息和处理的要求分析后得如下数据字典。(1)系统数据处理条目如下分析会员注册登录:接受会员输入信息对会员信息进行处理。管理员登录及设置:接受管理员输入信息对管理员信息进行处理。商品管理:返回用户和管理员对商品的查询信息,接受管理员对商品的修改、添加和删除操作并对商品信息进行处理。订单管理:返回用户及管理员对订单的查询信息,接受管理员对订单的删除和修改操作。商城公告管理:返回公告信息供用户查询,接受管理员对公告的删除、修改和添加。友情链接管理:提供用户对链接信息的查看,接受管理员对链接的删除、修改和添加。(2)数据流条目包含以下几条用户个人信息:包括用户的基本身
28、份信息及访问系统的权限。管理员基本信息:包括管理员基本身份信息及访问系统的权限。商品信息:包括商品的基本信息(商品的id,对应的大商品分类id,小商品分类id,商品名,商品基本信息描述,商品的最新价格和特价价格,商品的销售量,商品的图片,商品是否为特价的标记)。订单信息:包括订单的基本信息(账单号,账单描述信息,创建时间,是否出货的标记)及对应的用户基本信息。公告和友情链接信息:包括公告和链接的基本信息。4.2.2 数据库逻辑设计按照以上数据分析设计SQL Server2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。以下是电子商城系统数据库中的几个重要的表设计。表4-1 tb
29、_member表(会员表)列 名数据类型可否为空说 明idintNOT NULL会员编号namevarchar (50)NULL会员名passwordvarchar(50)NULL会员密码reallynamevarchar (10)NULL会员真实姓名ageintNULL会员年龄professionvarchar(50)NULL会员职业emailvarchar(50)NULL会员邮箱questionvarchar(50)NULL问题(用于找回密码)resultvarchar(50)NULL答案表4-2 tb_manager表(管理员表)列 名数据类型可否为空说 明idintNOT NULL管理
30、员编号accountvarchar (50)NULL管理员名passwordvarchar(50)NULL管理员密码namevarchar (10)NULL会员真实姓名signbitNULL标记(用于权限控制)表4-3 tb_goods表(商品表)列 名数据类型可否为空说 明idintNOT NULL商品编号bigIdintNOT NULL商品对应的大商品编号smallIdintNOT NULL商品对应的小商品编号goodsNamevarchar(50)NULL商品名goodsFromvarchar(50)NULL商品来源introducetext(4)NULL商品描述creaTimesmal
31、ldatetime(4)NULL创建时间nowPricemoney(8)NULL价格freePricemoney(8)NULL特价价格numberint(4)NULL 卖出数量picturevarchar(50)NULL 商品图片mark bit(1)NULL标记(是否为特价商品)表4-4 tb_order表(订单表)列 名数据类型可否为空说 明idintNOT NULL订单编号numbervarchar(50)NOT NULL订单号namevarchar(50)NULL订单对应的客户名reallyNamevarchar(50)NULL订单对应的客户真实名addressvarchar(50)N
32、ULL客户地址telvarchar(50)NULL客户电话setMoneyvarchar(50)NULL付款方式postvarchar(50)NULL发货方式bztext(16)NULL订单描述signbit(1)NULL 订单标记(是否出货)creaTimesmalldatetime(4)NULL 创建时间表4-5 tb_orderDetail表(订单信息表)列 名数据类型可否为空说 明idintNOT NULL订单信息编号(主键)orderNumber Numbervarchar(50)NULL订单号goodsIdintNULL订单对应商品编号pricefloat(8)NULL订单对应商品
33、价格number intNULL订单对应商品数量4.3 在struts框架下系统功能模块的实现本节根据功能模块的设计,详细介绍在struts框架下各个模块的实现过程。下面详细介绍系统各个模块在MVC模式下的实现过程及职能。系统的各个模块都封装成类,职能分工明确。用struts来实现Web应用程序有以下几个重要部分组成,HTML或JSP页面,Action,配置文件struts-config.xml。ActionForm为表单数据的提交提供了强有力的支持,一旦从HTML或JSP传递给了FormBean,并且属性经过了校验,所有属性就作为漂亮整齐的JavaBean(符合J2EE规范的类)传递给Act
34、ion。StrutsAction对象使用ActionForm来完成其业务操作,处理错误,并选择相应响应页面。在这几部分中,HTML和JSP页面就充当了V(view)的角色,配置文件struts-config.xml充当了C(controller)的角色,而Action既充当了M(module)也充当了C(controller)的角色。4.3.1 前后台公共模块实现本系统基于struts框架,各模块严格按照J2EE规范来开发。具体开发模式如下所述:页面信息在提交时都被封装为一个ActionForm(JavaBean的子类)对象。具体的Action调用信息处理类的方法对信息进行所要求的各种处理。然
35、后处理结果返回给相应页面。系统几个重要模块在struts框架下的实现过程将在下面详细介绍。在前后中都要用到对用户信息、商品信息、订单信息、公告信息、友情链接信息的操作。这些信息都要从数据库中得到,所以将各个信息的操作都封装成一个个不同的类,这些放在com.dao包下。以下是这些类的详细介绍。首先建立各个信息的ActionForm (JavaBean的子类)。MemberForm将会员的基本信息封装成一个ActionForm对象,类中声明了会员的所有基本属性包括idname、password、age、email、profession、reallyname、question、result。按照Ja
36、vaBean的规范,为这些变量都定义了get和set函数,以便在程序开发中获取和设置会员信息。以下各个信息的ActionFrom都按照这种规范来定义。GoodsForm.java ,商品信息的ActionFrom;SellGoodsForm.java,购货商品的ActionFrom;OrderForm.java,订单信息的ActionFrom;OrderDetailForm.java,订单详细信息的ActionFrom;BigTypeForm.java,大商品分类的ActionFrom;SmallTypeForm.java,小商品分类的ActionFrom;AfficheForm.java,公
37、告信息的ActionFrom;LinkForm.java,友情链接信息的ActionFrom。以上几个JavaBean同会员信息的JavaBean写法相同,所不同的只是属性个数和类型。将所有信息封装成以上JavaBean以后,可以在程序中的任何一个地方方便的获得信息的所有属性,并且提高了代码的可移植和可维护性。对各个信息的操作在以下类中实现:MemberDao.java:对用户信息的所以操作都在此类中实现,它可以按照要求返回一组用户信息也可以返回单个用户信息。代码如下:/对会员表的操作public class MemberDao private Connection connection =
38、null; /定义连接的对象 private PreparedStatement ps = null; /定义预准备的对象 private JDBConnection jdbc = null; /定义数据库连接对象 public MemberDao() jdbc = new JDBConnection(); connection = jdbc.connection; /利用构造方法取得数据库连接/以数据库流水号为条件修改会员的密码 public boolean updatePassword(String password, Integer id)/找回密码之用 public MemberFor
39、m selectFind(String name, String result) /全部查询的操作或以会员名称为条件查询信息 public MemberForm selectMemberForm(String name) /删除操作 public boolean deleteMember(Integer id) /添加用户信息 public void insertMember(MemberForm form) /以数据库流水号为条件修改信息 public void updateMember(MemberForm form) /以会员名称为条件查询密码 public String selectP
40、assword(String name) /全部查询信息操作 public List selectMember() /以数据库流水号为条件查询信息public MemberForm selectOneMember(Integer id) GoodsForm.java :商品信息的Java BeanSellGoodsForm.java:购货商品的Java Bean对应以上信息还有如下几个类,它们都象MemberDao.java一样实现了对信息的所有操作。OrderDao.java,OrderDetailDao.java,BigTypeDao.javaSmallTypeDao.java,Affic
41、heDao.java,LinkDao.java4.3.2 前台模块功能实现登录模块:在输入用户名和密码后,用户信息将作为一个MemberForm对象被提交给相应的MemberAction来处理。并将结果通过语句return mapping.findForward(checkMember)返回给页面,struts会根据struts-config.xml配置文件找到相应的页面。注册模块:用户输入的基本信息作为一个MemberForm对象被提交给相应的MemberAction来处理。并将结果通过语句return mapping.findForward(operationMember)。商品查询模块:
42、商品查询包括新品上架和特价商品查询,当点击其中一个链接时,系统通过url将要传递Action参数,进而调用相应的GoodsAction来处理,GoodsAction调用GoodsDao类方法将要查询的商品信息封装成一个个ActionForm对象放在容器List中,通过return mapping.findForward()返回给相应页面。struts框架会根据struts-config.xml配置文件找到相应的页面。订单查询模块:和商品查询模块相同,所不同的是不同的OrderAction调用OrderAction对信息进行处理,返回。查看购物车模块:用户点击查询购物车以后会转入相应页面,然后通
43、过session获得当前用户的cart,将用户购物车商品信息输出。其他的商品销量排行模块,会员修改模块都按照以上方法实现。4.3.3 后台模块功能实现商品设置模块:主要功能包括商品的添加、删除、修改,其中的功能都是通过url将商品信息提交给相应的Action,GoodsAction调用相应的GoodsDao类对相应的商品信息进行处理,然后返回结果。订单管理模块:主要功能包括订单的查询、修改和删除。在这个模块中你可以查看订单详细信息,进行出货处理,通过url将相应的订单信息提交给对应的OrderAction,然后处理其标志位,设置其是否已出货。后台管理员设置模块:当管理员登录的时候根据管理员的权
44、限,限制其可以进行的操作。普通管理员可以进行管理员设置操作外的其他任何操作。高级管理员可以对其他管理员的信息进行查看和修改删除。会员设置模块,公告设置模块,友情链接模块,与以上讲过的模块实现方式基本相同,只是处理方法逻辑控制有些许差别,这里不再详细叙述。总结与展望本系统完全按照struts框架来开发,有一定的商业使用价值。因为采用MVC模式,所以显示、逻辑控制、数据处理相对比较独立,降低了程序的复杂性,提高了系统的可维护性和可扩展性。系统中对各个数据对象的处理最能说明MVC模式的这些特性,在系统中把每个数据对象的处理封装在一个类中,这些类在MVC模式中充当M的角色。如果要增加对某个数据对象的操
45、作,就可以在类中为此数据对象定义处理方法,这样在其他地方就可以方便调用,这恰恰就是MVC模式扩展性好的最好证明。如果要对某个操作修改,也只须在类中对相应的方法修改即可,因此也为系统的维护提供了便利。但是本系统还有一些不足,在调试的时候发现一些bug,还不能很好的解决,尤其是对用户的误操作考虑不够全面。比如用户登录以后,用静态的容器list记录了用户的信息,由于误操作关闭了网页,服务器如果没有关闭,该用户在再次登录时系统会提示用户已登录的提示,这对用户的操作带来了不便,同时对系统的安全性埋下了隐患。用户登录的控制与其他相关操作有重要关联,所以在此的控制存在一定困难。其次就是页面显示问题,第一,页
46、面代码存在冗余,由于页面设计没有使用模版所以在很多页面代码出现一定的重复。第二,按照商业开发的规范,Web应用程序中jsp页面要尽量减少java代码的出现,且用jsp标签来实现页面的显示及逻辑控制。由于本人的知识有限,所以还没有把jsp中的java代码降到最少。在设计一个Web应该程序时,重要的是按照一个较好的框架进行开发。在本系统的开发struts框架(也就是实现了MVC模式的现在世界上流行的Web应用开发框架)。使用这样的框架进行开发,使我在开发本系统时逻辑清晰,各个模块职能分工明确。且在使用比较流行的struts框架开发时,大家都要遵循J2EE既定的规范,因此也为团队开发提供了条件。通过对这个项目独立的开发,学到了很多知识,加深了对J2EE的理解,同时也认识到遵循J2EE规范开发项目的优点。参考文献1 齐治昌、谭庆平、宁洪等编著,软件工程第二版,高等教育出版社,2004年4月2 谢希仁,计算机网络,