基于JSP网上书店售书系统的探讨毕业论文_第1页
基于JSP网上书店售书系统的探讨毕业论文_第2页
基于JSP网上书店售书系统的探讨毕业论文_第3页
基于JSP网上书店售书系统的探讨毕业论文_第4页
基于JSP网上书店售书系统的探讨毕业论文_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业论文毕业论文 论文题目论文题目:_:_基于基于 jsp 网上书店售书系统的探讨网上书店售书系统的探讨 毕业论文(设计)原创性声明毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研本人所呈交的毕业论文(设计)是我在导师的指导下进行的研 究工作及取得的研究成果。据我所知,除文中已经注明引用的内容究工作及取得的研究成果。据我所知,除文中已经注明引用的内容 外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。 对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中对本论文(设计)的研究做出重要贡

2、献的个人和集体,均已在文中 作了明确说明并表示谢意。作了明确说明并表示谢意。 作者签名:作者签名: 日期:日期: 毕业论文(设计)授权使用说明毕业论文(设计)授权使用说明 本论文(设计)作者完全了解本论文(设计)作者完全了解*学院有关保留、使用毕业论文学院有关保留、使用毕业论文 (设计)的规定,学校有权保留论文(设计)并向相关部门送交论(设计)的规定,学校有权保留论文(设计)并向相关部门送交论 文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目 的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可的的少量复制并允许论文(设

3、计)进入学校图书馆被查阅。学校可 以公布论文(设计)的全部或部分内容。保密的论文(设计)在解以公布论文(设计)的全部或部分内容。保密的论文(设计)在解 密后适用本规定。密后适用本规定。 作者签名:作者签名: 指导教师签名:指导教师签名: 日期:日期: 日期:日期: 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300 字左右) 、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论) 、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论

4、文)正文字数不少于 1 万字(不包括图纸、程序清单等) , 文科类论文正文字数不少于 1.2 万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件) 。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准 请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符 合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用 徒手画 3)毕业论文须用 a4 单面打印,论文 50 页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序

5、1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它 摘要摘要 网上书店购物系统 ,是以当前商务的网络化、快速化实际需求为背景, 实现图书购买的方便、快捷、送货上门等服务为前提综合信息服务系统的设计; 实现通过 internet 互联网对图书购买的相关信息进行发布及图书查询、图书介 绍、图书内容浏览等功能。java 语言是目前 internet 上大型的 web 应用程序 开发时使用得最热门的编程语言,本文描述了 java 和 jsp 技术的特点以及在互 联网上的使用情况,介绍这两种技术的重要编程方法和两者之关的联系,并完 成一个基于这种技术的网上书

6、店系统。 关键字:关键字:网上书店购物系统,jsp,电子商务, 网上书店 abstractabstract bookshop online shopping system, is based on the network, the current business fast actual demand for the background, implementation of book purchase convenient, shortcut, door-to-door services for the design of the premise of the comprehensive i

7、nformation service system; implementation of relevant information on the purchase of books by the internet internet publishing and library, books, book introduction content browsing. java language is the internet on the development of large-scale web applications using the most popular programming l

8、anguage, this paper describes the characteristics of java and jsp technology and the use of the internet, an important programming method and the introduction of these two technologies of close contact, and complete an online bookstore system base on this kind of technology. keywords:keywords: onlin

9、e bookstore shopping system, jsp, e-commerce, online bookstore 目录目录 前言.2 第一章 概述.3 1-1 java 语言简介.3 1-2 开发背景.3 第二章 java 技术简介.5 2-1 在 windows 平台下配置 jsp 运行环境.5 2-2 jsp、asp 和 php 技术之比较.5 2-3 jsp 语法基础.6 2-3-1 嵌入了 java 语言的 html 文件 .6 2-3-2 request、out 获得一个会话的值 session.getvalue(名称); 2-3-4 jsp 其它基本内置对象其它基本内置

10、对象 jsp 有九大内置对象,除了上述四种以外,还包括: pagecontext 网页的属性是在这里管理 application servlet 正在执行的内容 config servlet 的构架部件 page jsp 网页本身 exception 针对错误网页,未捕捉的例外 这些基本的内置对象是构成 jsp 页面的重要因子。 第第 3 章章 系统设计系统设计 本系统采用三层架构设计,它的工作原理如图 3-1 所示。 图 3-1 三层架构模型 采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层 按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据 封装成类的形

11、式返回给用户界面层。 3.1 数据库设计数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏 将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计 可以提高数据存储的效率,保证数据的完整和一致。 3.1.1 数据库需求分析数据库需求分析 针对一般在线书店的需求,得出如下需求信息。 用户分为游客和已注册用户。 订单分为单张详细订单和总订单。 一个用户可以购买多本图书。 订购 用户 订单列表订单 图书 一个用户对应一张订单。 一个列表对应多张订单。 针对本系统功能分析,总结出如下的需求信息。 用户,包括数据项:用户 id、用户名、密码。 图书,包括数据项:

12、图书编号、图书名、价格、图书介绍。 订单列表,包括数据项:订单编号、图书编号、购书数量。 订单,包括数据项:订单编号、用户编号、下单时间。 从本系统中规划出的实体有:用户实体、图书实体、订单实体、订单列表实体。 实体之间关系的 e-r 图如图 3-5 所示。 1 1n n 图 3-5 实体关系 e-r 图 用户信息实体的 e-r 图如图 3-6 所示。 图书实体的 e-r 图如图 3-7 所示。 订单实体的 e-r 图如图 3-8 所示。 订单列表实体的 e-r 图如图 3-9 所示。 图书 图书编号 图书名称分类编号 封面 图 3-6 图书实体 e-r 图 用户 用户名 密码用户编号 e-m

13、ail 图 3-7 用户实体 e-r 图 订单 订单编号 用户编号图书编号 订购数量 图 3-8 订单实体 e-r 图 订单列表 订单号 用户编号图书编号 是否付款 图 3-9 订单列表实体 e-r 图 3.1.2 数据库逻辑结构设计数据库逻辑结构设计 在线书店数据库中各个表的设计结果如下面的标和所示。 表 3.1 为图书信息列表 book。 表 3.1 图书信息表 book 字段名数据类型长度允许空说明 idint4自动编号,主键 booknameint4书名 bookclassvarchar255图书类别 authorvarchar100yes图书作者 publishfloat8yes出版

14、社 booknovarchar100yes书号 contenttext16yes内容介绍 pricetinyint1yes价格 amountint4yes总数量 leav_numberint4yes库存量 pictureint4yes封面 reg_timedatetime8yes入库时间 表 3.2 为用户信息列表 shop_user。 表 3.2 用户信息表 shop_user 字段名数据类型长度允许空说明 idint4自动编号,会员编号 usernamevarchar4no用户名 passwordvarchar100no密码 namesint4yes会员级别 sexvarchar50yes

15、名字 addrvarchar50yes地址 phonevarchar25yes电话 postvarchar25yes邮编 emailvarchar25yes邮箱 retimedatetime8yes注册时间 regipaddrvarchar20yes注册 ip 表 3.3 为订单表,记录订单信息 orders。 表 3.3 订单信息表 orders 字段名数据类型长度允许空说明 idint4yes自动编号,订单编号 order_idint4yes会员编号 user_idint4yes图书编号 quantityint4yes订购数量 submit_timedatetime8yes提交订单时间 c

16、onsignmenttimedatetime8yes交货时间 totalpricefloat8yes总价 contentvarchar20yes备注 ipaddrvarchar20yes用户 ip ispayoffint11yes是否付款 issaleint11yes是否发货 表 3.4 为订单列表,记录订单列表信息 allorder。 表 3.4 订单列表 allorder 字段名数据类型长度允许空说明 idint4自动编号,卡类型编号 orderidint11yes订单号 booknoint11yes书号 amountint11yes数量 表 3.5 书店管理员信息表,记录管理员信息 bo

17、okadmin。 表 3.5 管理员信息表 bookadmin 字段名数据类型长度允许空说明 adminuservarchar20管理员用户名 adminpassvarchar50 yes管理员密码 表 3.6 图书分类信息表,记录图书分类信息 bookclass。 表 3.6 图书分类表 bookclass 字段名数据类型长度允许空说明 idint4自动编号,卡类型编号 classnamevarchar30yes图书类别 第第 4 章章 详细设计详细设计 4.1 系统概述系统概述 411 用户界面部分用户界面部分 图书选购(可按分类查找图书,或者通过关键字进行查询)。 购物车功能。 查看图书

18、详细信息。 用户注册。 用户登录。 查看用户的订单信息。 修改用户个人信息。 412 管理界面部分管理界面部分 现有图书管理:修改,删除,查看。 用户管理:查看,修改,删除。 订单管理:查看订单清单,更新订单付款,出货状态,删除订单。 添加新图书。 添加图书分类。 4.2 详细代码及说明详细代码及说明 4.2.1 实现实现 bookshop.run 包包 1:login.java1:login.java 这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这 个系统,因此需要检验每个用户的合法性,管理用户登录的 login.java 正是要 完成这样的功能。 类中定义了个 pri

19、vate 属性和他们对应的 setx()/getx()方法和默认构造函数 和 execute() getsql() 操作。 private 属性分别是: private string username;/登录用户名 private string passwd;/登录密码 private boolean isadmin;/是否管理员登录 private long userid=0;/用户 id 号 重要操作:主要介绍 execute() execute()操作 功能:从数据库中查询用户信息。 返回值:boolean 型,如果取值成功返回 true,否则,返回 false。 设计思路:获得数据库连

20、接对象 connection 对象,resultset 对象和 statement 对象 调用 getsql()方法获得 sql 语句执行 sql 语句。 程序主干部分代码: public boolean execute() throws exception try con=database.getconnection(); stmt=con.createstatement(); rs = stmt.executequery(getsql(); catch(exception e) e.printstacktrace(); while (rs.next() if (!isadmin) user

21、id = rs.getlong(id); flag = true; 2:op_book.java 该类主要负责图书的管理,包括图书的修改,查询,删除和添加等。 op_book 类有以下属性: private book abooks = new book(); /新 的图书类 private javax.servlet.http.httpservletrequest request; /建立 页面请求 private boolean sqlflag = true ; /对接收到的数据是 否正确 private vector booklist; /显示图书列表向量数组 private int pa

22、ge = 1; /显示的页码 private int pagesize=5;/每页显示的图书数 private int pagecount =0;/页面总数 private long recordcount =0; /查询的记录总 数 public string sqlstr=; op_book 类有以下方法(省去了属性对应的 getx()/setx()方法): book_search();完成图书查询,包括分类,关键字查询。 delete();负责图书的删除。 getonebook();主要完成图书的单本查询,用于支持页面的“查看详细 信息”。 insert();负责图书的添加。 to_st

23、ring();把字符串以“iso 8859-1”编码形式输出,使页面正常 显示。 update();负责修改图书信息。 getrequest();负责接受页面传递过来的参数,分解并将参数存放到 abooks 对象中。 重要操作:主要介绍 getrequest() getrequest()方法 功能:负责从页面接受表单数据并分解,设置 abooks 对象相应属性。 参数设计:页面传递的 request 对象,其中包括表单数据。 返回值:boolean 型,true 表示成功,否则返回 false。 设计思想:获取页面传递的 request 对象分解 request 对象获 取表单参数值把参数值设

24、置成图书对象 abooks 相对应的属性值。 程序主干代码: public boolean getrequest(javax.servlet.http.httpservletrequest newrequest) request = newrequest; string bookname = request.getparameter(bookname); abooks.setbookname(to_string(bookname); string author = request.getparameter(author); abooks.setauthor(to_string(author);

25、 string publish = request.getparameter(publish); abooks.setpublish(to_string(publish); string bookclass = request.getparameter(bookclass); abooks.setbookclass(bc); string bookno = request.getparameter(bookno); abooks.setbookno(to_string(bookno); string picture = request.getparameter(picture); abooks

26、.setpicture(to_string(picture); price =new float(request.getparameter(price).floatvalue(); abooks.setprice(price); amount = new integer(request.getparameter(amount).intvalue(); abooks.setamount(amount); string content = request.getparameter(content); abooks.setcontent(to_string(content); . 3:op_user

27、.java: 为了使用上的方便,我们把对用户的管理,包括用户的添加,删除,修改, 查询等集合成一个管理类。 该类具有以下属性: private user user = new user(); / 新的用户对象 private javax.servlet.http.httpservletrequest request; /建 立页面请求 private vector userlist;/显示用户列表向量数组 private int page = 1;/显示的页码 private int pagesize=8;/每页显示的图书数 private int pagecount =0;/页面总数 pri

28、vate long recordcount =0; /查询的记录总 数 private string message = ; /出错信息提示 private string username = ; /注册后返回的用 户名 private long userid = 0; /注册后返回的用户 id 该类具有的主要方法(省去了属性相关的 getx()/setx()操作): add():负责用户的添加。 delete():负责删除指定 id 的用户。 get_alluser():取出书店所有用户的信息。 getgbk():返回指定字符串的 gbk 编码。 getuserinfo():负责取得用户的详

29、细信息。 update():负责修改用户资料。 getrequest():获取表单数据,并分解存储。 4:op_buy.java 我们把业务逻辑和对订单以及和订单列表的管理集成到了该类当中。 该类具有以下属性: private javax.servlet.http.httpservletrequest request; /建立页面 请求 private httpsession session; /页面的 session; private boolean sqlflag = true; /对接收到的数据是否正确 private vector purchaselist; /显示图书列表向量数组 p

30、rivate vector allorder; /订购单列表 private vector order_list; /订单清单列表 private int booknumber = 0; /购书总数量 private float all_price = 0; /购书总价钱 private boolean isempty = false; /库中的书数量是否够购买的数 private int leavebook = 0; /库存数量 private string orderid = ; /用户订单号 private boolean islogin = true; /用户是否登录! private

31、 int page = 1; /显示的页码 private int pagesize = 15; /每页显示的订单数 private int pagecount = 0; /页面总数 private long recordcount = 0; /查询的记录总数 该类的主要操作(省去了属性相关的 getx()/setx()操作) addnew():负责向购物车中添加新购买的图书。 delete():负责从数据库中删除指定 id 的订单。 modishoper():负责修改购物车中已选的图书。 delshoper():负责删除购物车中的物品。 getallorder():负责从数据库中的订单列表中

32、查询指定用户的订单列表。 getgbk():获得指定字符串的 gbk 编码。 getorder():获得单个订单对象。 payout():提交购物车,把订单插入到数据库中。 update():该方法负责当用户付款后,把数据中对应订单的是否付款标记修改成 已付状态。 重要操作:主要介绍 addnew() addnew()方法 功能:负责向购物车中添加一条新记录。 参数设计:页面传递的 request 对象。 返回值:boolean 类型,成功返回 true,否则返回 false。 设计思路:从页面获得表单数据(request 对象中)-获得图书编号等参数 值判断购买数量是否合法如果是可以操作,否

33、则不能操作判断是 否第一次购买如果是第一次购买,按第一次购买操作否则查询购买列 表,找是否有相应项,有则直接修改数量否则添加新记录。 函数代码: public boolean addnew(httpservletrequest newrequest) throws exception request = newrequest; string id = request.getparameter(bookid); string amount = request.getparameter(amount); long bookid = 0; int amount = 0; try bookid = l

34、ong.parselong(id); amount = integer.parseint(amount); catch (exception e) return false; if (amount rs.getint(1) leavebook = rs.getint(1); isempty = true; return false; database.closeresultset(rs); database.closestatement(stmt); database.closeconnection(con); catch (sqlexception e) return false; allo

35、rder ilist = new allorder(); ilist.setbookno(bookid); ilist.setamount(amount); boolean match = false; /是否购买过该图书 if (purchaselist = null) /第一次购买 purchaselist = new vector(); purchaselist.addelement(ilist); else / 不是第一次购买 for (int i = 0; i purchaselist.size(); i+) allorder itlist = (allorder) purchase

36、list.elementat(i); if (ilist.getbookno() = itlist.getbookno() itlist.setamount(itlist.getamount() + ilist.getamount(); purchaselist.setelementat(itlist, i); match = true; break; /if name matches 结束 / for 循环结束 if (!match) purchaselist.addelement(ilist); session.setattribute(shopcar, purchaselist); re

37、turn true; 4.2.2 客户界面设计与实现 1:界面头和界面尾设计。 为了提高代码的重用性,我把客户界面部分相同的头和尾作成两个独立的块, 分别命名为 head.inc 和 tail.inc。这两个文件是单纯的 html 代码,在 jsp 页 面中只要通过以下语句就可以实现对两个文件的调用: 他们的效果如下图 4-1: 图 4-1 界面头和尾部分显示效果 用户登录界面 login.jsp 代码如下: 2:用户登录模块的设计。 为了检验用户是否合法,所以需要输入用户名和密码来验证用户的合法性,用 户登录模块刚好完成这样的一个功能。该模块需要用到 login.java(见 4.4.3 1

38、)这 个 bean。需要设计一个表单让用户输入信息。效果图如下:图 4-2 图 4-2 用户登录界面 3.在线购书功能模块设计。 在该模块用户可以看见书店现有的样子,用户可以查找书通过分类,关 键字查找。 户可以购买图书,页可以查看图书的详细资料,还可以跳转到其他的模块,例 如查看 购物车,查看订单信息等。在这个模块中我们要用到 javabean 有 bookshop.book.book,bookshop.run.op_book,bookshop.run.op_bookclass 三个 javabean。对于他们的介绍我已经在前面介绍了这里就不在一一罗列了。 详情见 4.2 和 4.3 其中我

39、把导航条抽出来单独作为一个模块:sub.inc 左边的查找框也 单独设计成一个模块:left.inc 两个纯粹的 html 代码部分,在 jsp 页面中直 接调用。效果如下图 4-3 所示: 图 4-3 在线购书模块效果显示 在线购书页面模块 booklist.jsp 代码如下: 4:购物车模块页面设计。 在购物车这个模块当中用户可以修改购买数量,可以删除已选图书,可以提 交购物车,也可以清空购物车,同时也可以继续购书。在这个模块中我们用到 了 bookshop.run.op_book,bookshop.run.op_bookclass,bookshop.run.op_buy 三个 javab

40、ean.关于他们的介绍在前面已经罗列出来了这里就不在一一说明了。 该模块运行时效果如图 4-4 所示: 图 4-4 购物车模块显示效果 页面核心代码如下 shopcar.jsp: % string userid = (string) session.getattribute(userid); if ( userid = null ) userid = ; string modi = request.getparameter(modi); string del = request.getparameter(del); string payoutcar = request.getparameter

41、(payout); string clearcar = request.getparameter(clear); string mesg = ; if (modi!=null else mesg = 修改购买数量出错!; else mesg = 修改成功; else if ( del != null else if (payoutcar != null session.removeattribute(shopcar); else if(!shop.getislogin() mesg = 你还没有登录,请先登录后再提 交; else mesg = 对不起,提交出错,请稍后重试,shop.payo

42、ut 出错!; else if (clearcar != null mesg = 购物车中的物品清单已清空; % 5其他页面显示效果图。 图 4-5 订单页面显示效果 订单页面我们可以看到自己已经提交的所有订单,可以查看订单的状态和详 细情况。并色环境以弹出窗口的形式显示订单信息。这种功能主要是通过 javascript 脚本语言实现的。如: function openscript(url,name, width, height) var win = window.open(url,name,width= + width + ,height= + height + ,resizable=1,s

43、crollbars=yes,menubar=no,status=yes ); function checklogin() if (document.payout.userid.value=) alert(你还没有登录,请登录后再提交购物清单。); return false; return true; function check() if (document.change.amount.value1) alert(你的购买数量有问题); document.change.amount.focus(); return false; return true; 第第 5 章章 系统测试系统测试 5.1

44、 数据库连接数据库连接 在系统的整个开发工程中,我们最容易碰到的难题是数据库连接这个模块。 在 javabean 中连接数据库注意的一些事项有: 1 首先要下载 microsoft sql server 2000 driver for jdbc 这个包,并安 装。 2 把 microsoft sql server 2000 driver for jdbc 的 lib 文件夹下的: msbase.jar,mssqlserver.jar,msutil.jar 三个文件拷贝到 tomcat 安装目录下 的 commen/lib 文件夹下。 3 把 msbase.jar,mssqlserver.jar

45、,msutil.jar 三个文件的路径添加到 classpath 中。 4 如果使用的操作系统是 windows xp 在安装 sql server2000 后必须下载 sp3 补丁并安装,否则打不开 1433 端口号。 在数据库连接中出现问题将会出现异常提示信息: org.apache.jasper.jasperexception org.apache.jasper.servlet.jspservletwrapper.service(jspservletwra pper.java:372) org.apache.jasper.servlet.jspservlet.servicejspfile

46、(jspservlet.ja va:292) org.apache.jasper.servlet.jspservlet.service(jspservlet.java:236) javax.servlet.http.httpservlet.service(httpservlet.java:802) root cause java.lang.nullpointerexception bookshop.run.login.execute(login.java:83) org.apache.jsp.bookshop.admin.adm_005flogin_jsp._jspservice(adm_0

47、05flogin_jsp.java:72) org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:94) javax.servlet.http.httpservlet.service(httpservlet.java:802) org.apache.jasper.servlet.jspservletwrapper.service(jspservletwra pper.java:324) org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.ja va:

48、292) org.apache.jasper.servlet.jspservlet.service(jspservlet.java:236) javax.servlet.http.httpservlet.service(httpservlet.java:802) 如图 5-1 所示: 图 5-1 数据库连接异常 这个时候可能出现的问题是数据库服务器没有开启,或者是没有安装 microsoft sql server 2000 driver for jdbc 这个包。 5.2 检测网站运行速度 一、用 ajax 提高用户体验 由于我的网站上链接字体的大小是根据点击次数决定,所以每次点击都要提 交到

49、服务器端并记录次数,再在客户端打开网站链接。这在 localhost 测试的 时候没有发现问题,但是部署到服务器上,会感到明显的等待。解决办法就是 用 ajax。用户点击网站链接后就直接打开,再通过 ajax 将点击的事件提交到 服务器端记录。这样用户感觉不到任何延时。 二、将逻辑移到客户端的 javascript 中 在开始的时候,“网站标签高亮”和“手气不错”的功能都是提交到服务器 端操作,然后返回结果的。后来,我发现其实很多逻辑是可以移到客户端,由 javascript 来实现的。javascript 非常强大,可以完成很多复杂的逻辑。将逻 辑移到客户端的 javascript 中,可以

50、很有效的减少和服务器通讯的次数,获得 更好的访问速度。 三、解决进程的 由于采用的是 fastcgi 的方式,我配置了 django.fcgi。可是,我发现系统 进程中,有大量的 django.fcgi 进程被标记为 (失去功能)。这些进 程会导致服务器有时无法正常访问。我开始尝试用命令来 kill 掉这些进程,但 是很快发现这无法从根本上解决问题。后来,我看到一个老外在 blog 上提到一 个解决方案,将 django.fcgi 改名为 dispatch.fcgi。原来,dispatch.fcgi 是 一个 dreamhost 的系统进程,它的健壮性是可以得到保障的。果然,我将 django

51、.fcgi 改名为 dispatch.fcgi 后,的现象再没有出现。 四、优化 sql 语句 sql 语句的执行通常也是一个很花费时间的操作。经过检查,我发现我的一 条 sql 语句,是一个嵌套三层的子表查询。而这条 sql 还必须是一个 raw sql,即不能采用 django 的 or maping。这意味着不能被 cache 缓存,每次都 是真刀真枪的执行。更失败的是,经过我的分析,这条 sql 完全可以不执行。 这是一次设计上的失误,标准的 over design(过渡设计)。当时,我是想通过 数据库得到一个最精确的统计值。后来发现,这个值完全可以用一个近似的常 量代替。优化 sql

52、,尤其是避免不必要的 sql 执行,带来的效果是非常明显的。 第第 6 章章 总结总结 本文论述了一个基于 web 的网上商品销售系统,基本上体现了电子商务各方 面的优点。我所设计的网上书店,主要是熟悉和掌握 jsp 的技术以及对电子商 务进行初步的探讨和设计。 在软件开发编码阶段我才用原型法,先设计出个一个实现简单功能的系统在 更具需求一步步完善系统的功能。由于是才采用面向对象的设计所以系统中由 很多类和方法,我将他们归类将经常使用的方法放在单独的类文件中,在以后 的编码中只要通过对名称空间的引用就能调用他们。本系统在实现传统的网上 书店功能基础上对增强系统的安全性进行了初步的尝试,但是由于

53、这方面研究 的不深所以实现的与需求还有一定的差距。 在设计和制作网上书店这一个整体项目的过程中,也培养了自己的综合能力 和从全局考虑的思想。将复杂的问题简单化,作为电子商务应用的一个缩影, 我所涉及的模块项目完成了其后台具有的基本功能,使自己对于电子商务的了 解更加深入和明了。 当然,其中也遗留下了一些待解决的问题,但出于自己水平有限,作为一个 网上书店系统,该项目上有一些不完善和函待改进之处,特别是在网站信息的 安全性上需要进一步加强。 注释:注释: jsp(全称 javaserver pages)是由 sun microsystems 公司倡导和许多公司参 与共同建立的一种使软件开发者可以

54、响应客户端请求,而动态生成 html、xml 或 其他格式文档的 web 网页的技术标准。jsp 技术是以 java 语言作为脚本语言的, jsp 网页为整个服务器端的 java 库单元提供了一个接口来服务于 http 的应用 程序。 sql(structured query language)是一种资料库查询和程式设计语言,用於 存取资料以及查询、更新和管理关联式资料库系统。sql 同时也是数据库文件 格式的扩展名。 电子商务,英文是 electronic commerce,简称 ec。电子商务涵盖的范围很 广,一般可分为企业对企业(business-to-business),或企业对消费者 (business-to-customer)两种。另外还有消费者对消费者(customer-to- customer)这种大步增长的模式。随着国内 internet 使用人数的增加,利用 internet 进行网络购物并以银行卡付款的消费方式已渐流行,市场份额也在迅 速增长,电子商务网站也层出不穷。电子商务最常见之安全机制有 ssl(安全套 接层协议)及 set(安全电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论