收稿日期:2002209209;修返日期:2003201213基于J ava 技术的网上书店系统的设计与实现杨 帆,徐春华,刘心雄,陈和平(华中科技大学机械科学与工程学院,湖北武汉430074)摘 要:介绍了运用Java 技术来设计与实现网上书店电子商务系统,给出了系统的结构、功能以及解决方案的设计,并就其中的关键技术M VC 结构设计进行分析,给出了解决方案。
关键词:Java ;Servlet ;JSP ;Applet ;M VC 中图法分类号:TP311111 文献标识码:A 文章编号:100123695(2003)1220152203Design and Implementation of Bookstore on Net Based on Java T echnologyY ANG Fan ,X U Chun 2hua ,LI U X in 2xiong ,CHE N He 2ping(School o f Mechanical Science &Engineering ,Huazhong Univer sity o f Science &Technology ,Wuhan Hubei 430074,China )Abstract :The paper introduces h ow to design and accom plish the E 2trade b ookstore on the net based on Java techn ology.I t gives the system ’s structure design and function design and res olvable scheme design.And it als o analyzes the piv otal technique of M VC and gives its res olvable scheme.K ey w ords :Java ;Servlet ;JSP ;Applet ;M VC1 引言21世纪是网络时代。
网络技术的飞速发展,极大地影响了商业交易中传统的交易方式和流通方式。
本地一大型书店,随着业务的不断扩大,书店的规模也不断扩大,迫切需要建立相应的网上书店。
利用电子商务的优势同现有销售模式和流通渠道相结合,扩大消费市场,为书店的再发展带来新的商机,也为各地消费者提供便利,而且降低商业成本。
目前国内的这种商务网站大多是用ASP 来编写,但ASP 有它的局限性。
它是解释运行的,在多个客户访问的情况下会变得非常慢,而且网站服务器的负荷也很重,且只能运行在微软的操作系统和服务器上。
另外不安全性也是需要注意的问题。
而JSP 的编译操作仅在第一次对页面请求时发生,速度远远大于ASP ,而且可以跨操作系统,安全机制和性能均大于ASP 。
我们综合各方面的考虑,决定采用Applet +JSP/Servlet 的Java 技术来开发本网上书店系统,充分利用Java 技术的优势,系统稳定高效,而且管理人员通过后台管理能及时地发布新的书讯动态,加强了书店与消费者之间的联系,极大地提高了书店的销售额,取得了显著的效果。
2 系统结构模型本系统是基于Internet 的结构,采用如图1所示的三层架构模型。
第一层采用浏览器,操作者通过界面向W eb 提交服务请求。
第二层的W eb 服务器专门用来进行请求中的逻辑处理,根据请求与第三层的数据库服务器进行数据交易,然后返回浏览者所需要的结果,显示在第一层的浏览器界面上,从而达到远程操作的目的。
采用这样的架构改进了传统C lient/Server 结构的缺点,除降低了C lient 端程序逻辑的复杂度,更减轻了后端数据库存取的负载,也平衡了整个网络流量。
3 系统功能设计本系统的功能如图2所示。
系统的权限有两种:普通浏览者和系统管理员。
以这两种不同的身份登录后系统给出的界面和功能不同。
系统管理员拥有所有普通浏览者所能操作的功能。
(1)普通浏览者登录系统①查看商品列表。
可以查看到按时间先后列出的书籍的目录,书籍的名字可以链接到本书籍的详细信息。
在本功能网页的最下面也有书籍的分类目录,可以点击关心的书籍分类,得到所有本类的书籍列表。
②查询书籍。
这是对于浏览者最有用途的一个功能,浏览者・251・ 计算机应用研究2003年可以根据书名、作者、出版社等信息进行相关书籍的模糊查询,得到想要查找的书籍的详细信息,确定是否购买。
③查看新货。
进入该网页可以看到最近发布的十本新书,都有本书的封面和内容介绍,使浏览者可以了解到最新的书籍动态。
④查看特价商品。
进入该网页读者可以看到已经打折或降价变为特价的一些书籍,可以用较低的价格购买。
⑤登记缺货。
读者如发现该书店的库存没有所想要的书籍,可以在这个功能网页中登记所想要的缺货书籍,以便书店管理者尽快的补充货源。
⑥采购书籍。
读者可将自己满意的书籍放入购物车,购物车会给出采购书籍的清单,读者停止购物以后填写购物订单,写好自己的邮购地址和名字等详细信息,然后提交,购物完成。
⑦论坛。
消费者可以留下自己的意见,广大读者也可以对一些问题进行交流。
⑧聊天室。
所有注册的浏览者都可以进行聊天。
(2)系统管理员登录系统除拥有以上所有功能外,还有:①查看用户列表。
可以查看用户的列表并获取用户的注册信息,查看是否属实。
②查看缺货。
可看到所有读者登记的缺货信息,及时反馈给书店的管理人员,补充货源。
③发布新书。
有新书来到时,管理员可以通过本网页将新书的信息发布到网站上供浏览者查看。
④发布特价书籍。
有些书籍需要调整为特价,通过本功能发布特价书籍。
⑤处理订单。
收到邮寄款或信用卡付账后,查询出要处理的该订单,将书籍邮寄给读者。
若订单是本地区的要求配送,可直接将书籍送到消费者手中。
4 基于MVC结构的J ava解决方案设计(1)Java技术简介Java语言是由一种面向对象的和平台无关的编程语言,其具有面向对象性、可移植性、平台无关性和安全性等多种优点。
①Applet。
可以嵌入HT M L中的小应用程序,为用户提供美观大方的控制界面。
它还具有良好的交互性,可以控制Applet在发送数据回W eb服务器前做许多额外的工作。
比如对数据进行检查,及时发现错误,这就能降低网络传输代价,提高响应速度。
②Servlet。
它是用Java编写的服务器端程序,其重要功能在于交互式的浏览和修改数据,生成动态W eb内容,采用基于请求/问答的工作模式。
③JSP技术。
JSP网页在HT M L网页中包含了能够生成动态内容的Java程序代码,在JSP中编写静态HT M L更加方便,弥补了Servlet程序中直接控制页面表示、事务逻辑与设计逻辑不能分离的缺点。
④JavaBean是一种Java类。
通过封装属性和方法成为具有某种功能或者处理某个事务的对象组件。
JSP 和S ervlet通过结合JavaBean来扩充网页中程序的功能。
(2)基于M VC结构的设计方法本系统采用了Servlet和JSP技术相结合的方式,使用模型-视图-控制器(M VC)结构来开发本系统,模型(M odel)提供应用业务逻辑,视图(View)则是其在屏幕上的显示,控制器(C ontroller)管理用户与视图发生的交互。
通过使视图完全独立于控制器和模型,就可以轻松替换前端客户程序,将控制器和模型分开可以在不影响模型的情况下改变控制器,也可以在不影响控制器的情况下改变模型。
本系统的M VC结构如图3,这是一种把JSP和Servlet联合使用来实现动态内容服务的方法。
它汲取了两种技术各自的突出优点,用JSP生成表达层的内容,让Servlets完成深层次的处理任务。
在这里,Servlets充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP 页传给请求者。
在JSP页内没有处理逻辑,它仅负责检索原先由Servlets创建的对象和Beans,从S ervlet中提取动态内容插入静态模板。
这种方法清晰地分离了表达和内容,明确了角色的定义以及开发者和网页设计者的分工。
图3 系统M VC结构图5 MVC结构的实现在开发各部分功能的过程中,遵循了以上原则,例如开发后系统的新货上架的界面如图4所示。
图4 新货上架的界面图阐述M VC结构的实现。
●模型实现 在本系统中编写了大量的JavaBeans,来提供JSP和Servlet所需要的业务逻辑。
例如几乎每个页面都要用到的数据库连接,就用一个名为C onn的Jav2 aBean封装起来。
在Bean的构造函数中,采用C lass.for2 Name(“sun.jdbc.odbc.JdbcOdbcDriver”)语句来加载Jdbc 驱动程序,然后构造一个ResultSet类型的名为execute2 Query(S tring S Q L)的方法,其中有下列语句:connect=DriverM anager.getC onnection(″jdbc:odbc:database″,″sa″,″″);//用驱动程序连接到数据库S tatement stm t=connect.createS tatement();//创建S tatement对象rs=stm t.executeQuery(sql);return rs;//执行查询语句,返回结果集在JSP页面初始化C onn的引用后,在JavaBean的构造函数中就会加载好数据库的驱动程序,可以方便地调用该JavaBean的executeQuery方法来返回一个S Q L语句的数据库查询结果集,对结果集进行需要的操作。
另外由于服务器用的是tomcat,存在中英文转换问题,所以编写了中英文转换的名为Change的JavaBean,还有显示时间、显示表头、分页等许多JavaBean,构成整个系统的功能和应用逻辑模型。
Servlet可以直接向模型发・351・第12期杨 帆等:基于Java技术的网上书店系统的设计与实现 出请求,一些逻辑请求经过处理后返回Servlet 或JSP ,可以实现代码的重复利用,大大地简化了代码,且易维护。
在对一些功能作改动时只需要改动JavaBean ,不需要改动所有设计到此功能的Servlet 或JSP 。
●视图实现 界面采用Applet +HT M L +JSP 设计完成,在Dream weaver 中设计出静态页面,然后根据动态显现的需要,插入JSP 语句和Applet 。
有些特殊的效果要求需要在HT M L 中插入JavaScript 脚本语言来得到,如弹出要求大小的窗口,提交时检验填写信息是否正确等。
在JSP 中基本没有什么逻辑代码,只是负责将Servlet 返回的结果显示出来。