基于JSP的网上书店系统的设计与实现【文献综述】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文献综述
计算机科学与技术
基于JSP的网上书店系统的设计与实现
一前言
随着中国加入WTO,全球经济一体化的逐步深入,网上书店已是现代传统书店必不可少的经营策略之一了。

所以为了更方便、省时得买到自己所需的书籍,我们选择开发网上书店。

另一个原因,由于网上书店批发经销经营,与各出版社及图书发行商合作密切,且批发业务遍及全国各地,因此也能在价格、图书经营范围上以及物流供应链上比其它传统书店都有较大的优势。

传统的购物方式寻找商品所花费的时间、付出的交通费用以及体力上的透支相对于越来越烦忙的人们来说是一种浪费,随着Internet的普及以及人们生活质量的提高,消费者渐渐意识到网上购物方便快捷的优越性,成为一支新兴的重要的不断壮大的消费队伍,因此,构建网上书店,是适应消费者消费方式转变的需要。

赢得消费者才能赢得市场。

二JSP概述
SP(全称J ava S erver P ages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准[1]。

JSP技术是以java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于Http的应用程序。

JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。

JSP句法增加了被称为JSP动作的XML标签,它们用来调用内建功能。

另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们[2]。

标签库提供了一种和平台无关的扩展服务器性能的方法。

JSP被JSP编译器编译成Java Servlets。

一个JSP编译器可以把JSP编译成JAVA代码写的servlet然后再由JAVA编译器来编译成机器码,也可以直接编译成二进制码。

三JSP的运行原理
在JSP第一次获得来自于客户端浏览器的请求时,JSP文件将被JSP引擎(JSP engine)转换成一个Servlet,即将”.jsp”文件编译成Java Class文件。

当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。

如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。

在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中[3]。

此时JSP引擎还请求了jspInit()方法的执行,并对此Servlet初始化。

JspInit()方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。

对于所有随后对该JSP文件的请求,服务器将检查该JSP文件自最后一次被存取后是否经过修改。

如果没有修改,则将请求交还给还在内存中的Servlet的jspService()方法,执行回复操作。

由于Servlet始终驻于内存,所以响应是非常快的[4]。

Jsp页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。

四 JavaBean介绍
最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。

特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。

这些包括如Grid控件,用户可以将该部件拖放到开发环境中。

从此,JavaBean就可以扩展为一个java web应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB)。

JavaBean 和Server Bean(通常称为Enterprise JavaBean (EJB))有一些基本相同之处。

它们都是用一组特性创建,以执行其特定任务的对象或组件。

它们还有从当前所驻留服务器上的容器获得其它特性的能力[5]。

这使得bean 的行为根据特定任务和所在环境的不同而有所不同。

一个JavaBean其实就是一个Java类。

JavaBeans API规范书中针对它的方法和属性定义了一个简单的规范,你必须在Java类中用这些方法和属性,否则就不能成为一个JavaBean。

Bean的特征(也就是属性、方法、事件)都应能被带有bean的应用程序发现,或者被IDE应用程序发现,比如IBM Eclispse或Intellij IDEA。

这种发现过程被称之为内(introspection)[6]。

Beans以以下二种方式支持内省(introspection):
它们根据特定的规则也就是熟知的设计模式来命名特征。

Java.bean.Introspector类通过检查设计模式来发现bean特征。

Java.beans.Introspector类依赖核心的Java反射API[7]。

它们利用一个相关联的bean信息类来显式提供属性、方法和事件信息,这个类实现BeanInfo接口,它能显式的提供给那些应用程序创建工具(Builder Tool)要用到的特征[8]。

属性是bean的外观和行为的特征,你可以在设计的时候修改。

Bean Builder工具通过内省(introspection)发现它的属性并提供给外部用于处理。

Bean对外提供属性的操作,所以它们能在设计的时候来定制[9]。

定制有二种方式:一是通过使用属性编辑器,另外一个是通过使用功能更强大的bean定制器。

Beans使用事件与其他beans进行通信。

接受事件的bean(监听bean)和激活事件的bean (源bean)通过注册联系起来[10]。

Bean Builder工具能检测一个bean并判断哪个beans能激
活事件(发送),哪个能处理事件(接收)。

持久性(Persistence)确保beans能保存和恢复它们的状态。

修改一个bean的属性后,你可以保存bean的状态并能在以后恢复到未改变时的状态[11]。

JavaBean体系结构利用Java对象序列化来支持持久性。

Bean的方法和java的方法没有区别,你也可以从别的beans或者一个脚本环境中去调用这些方法。

缺省情况下,所有public方法都是对外可调用的。

五基于JSP网上书店系统的购物车设计的相关问题
客户在浏览网页的时候,当遇到喜欢的商品,又不急于结账而是继续浏览货物时。

则需要一个类似购物车的模块来模拟购物车的功能。

以便于结账或用于对比商品的详细参数。

用户在购物车页面中需要对购物车的商品添加数量,删除商品,清空购物车等功能。

当遇到掉线,网络中断时,购物车能自动保存网络中断前的购物车记录。

用户再次登陆时能正常显示中断前购物车的商品。

除此之外,购物车还得有计算出商品总价,购物车商品总数的功能。

很多客户在提交订单之前往往因为很多原因放弃购买。

客户虽然没有成功下单,但是购物车里的商品须在一定程度上映射出客户对某些商品的关注度。

如果能购物车里的商品数据记录下来,并分析,对商家的运营是有一定的帮助作用的。

具体功能如下。

供应商功能:
1. 统计购物车数量
2. 删除购物车
3. 计算下单率
4. 获取购物车中商品的热度
5. 获取热度最高的商品
客户浏览功能:
1. 添加商品
2. 移除商品
3. 获取商品数量
4. 获取商品总价
5. 清空购物车
6. 查看购物车中的商品
7. 处理购物车网络意外中断时的情况
8. 生成订单
参考资料
[1]郑少红,王海涛,赵志峰.Ad Hoc网络技术.人民邮电出版社,2005,1-14
[2]姚晓春,郑文清等编著.Java编程技术教程.清华大学出版社,1999
[3]吴逸贤,吴目诚编著.Java2程序设计.科学出版社,2003
[4]刘晓华,张健,周慧贞编著. JSP应用开发详解.电子工业出版社,2007
[5]王先国主编.JSP动态网页编程技术. 电子工业出版社,2006
[6]明日科技编著.JSP数据库系统开发案例精选.人民邮电出版社,2006
[7]吴建,张旭东编著.JSP网络开发入门与实践.人民邮电出版社,2006
[8]孙涌.现代软件工程.北京希望电子出版社,2003年8月:1-246
[9]萨师煊,王珊.数据库系统概论.高等教育出版社,2002年2月:3-460
[10]Brown等.JSP编程指南(第二版). 电子工业出版社 ,2003年3月:1-268
[11]朱红,司光亚.JSP Web编程指南.电子工业出版社, 2001年9月:34-307。

相关文档
最新文档