网上书店系统课程设计Word文档格式.docx
《网上书店系统课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《网上书店系统课程设计Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
![网上书店系统课程设计Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/a79534ee-bcee-4a6b-b65f-713fc5766ead/a79534ee-bcee-4a6b-b65f-713fc5766ead1.gif)
文本
书名
bookAuthor
作者
bookDate
日期/时间
出版日期
形如:
2007-01-22
bookPublish
出版社
bookPrice
数字
标价
bookStorage
库存
bookSold
售出数量
bookPhoto
备注
封面图片的路径和文件名
bookSort
类别
科技、文艺、管理、经济,等
bookIsbn
ISBN号
bookWords
字数
bookYC
印次
bookBC
版次
bookSheet
纸张
bookValue
售价
bookSummary
内容提要
bookAuthorInformation
作者简介
bookComment
评论
bookCommend
推荐方式
inAll(全局推荐)、inSort(在其所属类别内推荐)
表-2user,用户的详细资料。
userId
用户编号(主键)
userName
用户名
userFigure
身份
总管、读者
userSex
性别
男、女
userAge
年龄
>
0,<
150
userBirthday
出生日期
userAddress
现居住地
userHome
籍贯
userPwd
密码
userNumber
身份证号
表-3orderTotal,订单的整体属性资料。
orderId
订单编号(主键)
用户编号
orderDate
订购日期
checkDate
审核日期
totalValue
总价
表-4orderItem,订单中的图书条目资料。
订单编号
图书编号
buyNum
购买数量
bookSta
图书状态
缺书、待审、已发
图书售价
表-5topic,论坛的主帖的详细资料。
topicId
主帖编号(主键)
topicDate
发表日期
topicContent
内容
topicTitle
标题
发表的用户名
followTotal
回复数
发表的用户编号
表-6topic_follow,主帖与回帖的对应关系。
followId
回帖编号(主键)
主帖编号
followUserId
回帖的用户编号
表-7follow,回帖的详细资料
followDate
followContent
followTitle
表-8hotSearch,热门搜索关键词的详细资料。
hotSearchId
编号(主键)
searchMode
搜索方式
作者、书名、出版社
searchWord
搜索关键词
4.功能模块。
4.1首页index-main.jsp部分代码—1。
变量、函数的声明,网页标题的显示。
<
%@pagelanguage="
java"
contentType="
text/html;
charset=gb2312"
import="
java.sql.*,myPk.*"
%>
%request.setCharacterEncoding("
gb2312"
);
html>
head>
metahttp-equiv="
Content-Type"
content="
linkrel="
stylesheet"
type="
text/css"
href="
blue.css"
%!
//转换字符集
publicStringtoChi(Stringstr)
{
if(str==null)
return"
"
;
try
{
Stringtemp_p=str;
byte[]temp_t=temp_p.getBytes("
ISO8859-1"
Stringtemp=newString(temp_t);
returntemp;
}
catch(Exceptione){}
returnstr;
}
%>
%
Stringsort=null;
StringpageTitle="
首页"
//网页标题
StringbookHot="
//栏目的标题
Stringsql="
select*frombook"
Pageablers=null;
PageablersNew=null;
PageablersHot=null;
PageablersCam=null;
if(request.getParameter("
sort"
)!
=null)
/*Javascript脚本中页面跳转时传递的参数,
以及HTML中链接(<
ahref="
***.jsp?
p1=z1"
跳转<
/a>
)时传递的参数,
即使在发送端用了 request.setCharacterEncoding("
GB2312"
接收时,仍然要用自定义的函数转换字符集,否则参数中的中文会显示为乱码。
*/
sort=toChi(request.getParameter("
));
pageTitle="
["
+sort+"
]"
bookHot=pageTitle;
sql=sql+"
wherebookSort='
'
title>
%=pageTitle%>
--网上书店<
/title>
/head>
4.2首页index-main.jsp部分代码—2。
显示全局推荐、类别内推荐的书目。
tablewidth="
100%"
border="
0"
cellspacing="
cellpadding="
tr>
td>
<
divid="
titleBg"
titleText"
%=bookHot%>
推荐<
/div>
br>
/td>
/tr>
tdalign="
left"
Conncon=null;
try
StringcomSql="
if(request.getParameter("
comSql+=sql+"
andbookCommend='
inSort'
else
wherebookCommend='
inAll'
comSql+="
orderbybookSolddesc"
con=newConn();
PageablersCom=con.getRs(comSql);
rsCom.setPageSize(10);
rsCom.gotoPage
(1);
for(inti=0;
i<
rsCom.getPageRowsCount();
i++)
if(sort==null)
ahref='
index-main.jsp?
sort=<
%=rsCom.getString("
bookSort"
)%>
[<
]<
book-information.jsp?
id=<
bookId"
bookTitle"
)%>
&
nbsp;
bookAuthor"
bookDate"
).substring(0,10)%>
rsCom.next();
con.closeRs();
}catch(Exceptione){out.print(e.toString());
/table>
4.3订单处理文件deal-order.jsp的部分代码—1。
函数声明。
/*订单(session) order 形如 -bookId,buyNum-bookId,buyNum-,
依次为 -图书编号,购买数量-图书编号,购买数量-*/
/* 如果字符串 str 的长度小于 n ,则在其左边填充足够的 * 号,使其长度为 n 。
-左,右->
*/
publicStringappString(Stringstr,intn)
intstrLen=str.length();
if(strLen>
=n)
returnstr;
StringsTem="
StringsBlank="
*"
for(inti=0;
(n-strLen);
sTem+=sBlank;
sTem+=str;
returnsTem;
/* 将 str 以 - 为标志分段,于各小段中再以 , 分为两段(形如段a,段b),在每个段a的左边填充 * 号,使每个段a的长度均为 n */
publicStringappLongStr(Stringstr,intn){
String[]sTem=str.split("
-"
StringsRet="
sTem.length;
i++){
String[]splitByDot=sTem[i].split("
"
splitByDot[0]=appString(splitByDot[0],n);
sTem[i]=splitByDot[0]+"
+splitByDot[1];
}
if(sTem.length==1)
returnsTem[0];
(sTem.length-1);
sRet+=sTem[i]+"
sRet+=sTem[sTem.length-1];
returnsRet;
4.4订单处理文件deal-order.jsp的部分代码—2。
放弃购物车中的指定书本。
if(act.equals("
del"
)){
//将某书从购物车中移除
if(sOrderSession.indexOf("
)==-1)
sTem="
//删除的是sessionorder中仅有的一个记录项
else{
sSessionLeft=sOrderSession.substring(0,sOrderSession.indexOf(bookId+"
sSessionRight=sOrderSession.substring(sOrderSession.indexOf(bookId+"
if((sSessionLeft.indexOf("
)==-1)&
(sSessionRight.indexOf("
=-1))
sTem=sSessionRight.substring(sSessionRight.indexOf("
)+1);
//删除的是sessionorder中最左的记录项。
elseif((sSessionLeft.indexOf("
=-1)
)==-1))
sTem=sSessionLeft.substring(0,sSessionLeft.lastIndexOf("
//删除的是sessionorder中最右的记录项
))+sSessionRight.substring(sSessionRight.indexOf("
//删除的是sessionorder中间位置的记录项
}//if(act.equals("
)
5.运行结果。
5.1首页。
5.2智能图书搜索。
搜索栏的输入框的下边有相应搜索方式的热门搜索关键词。
可分别按作者、书名、出版社搜索图书,同时支持模糊搜索,如,按“出版社”搜索“长江[空格]人民”可搜索到出版社名字中含有“长江”、“人民”的图书(全图)。
5.3购物车。
5.4订单列表。
5.5论坛。
5.6添加图书。
5.7管理图书。
6.总结。
伴随着第一场雪的降临,这个课程设计才接近了尾声。
在这次课程设计里,可以说是全身心地投入,――正式开始动工之前,有很多关于网站架设的想法,觉得网站无非就是数据库+标签,真正下手后,深刻体会到了其中的艰辛,特别是当第一场雪哗啦啦地下下来,而我却不得不坐在电脑前继续调试时。
虽然没能赶在第一场雪的时候去堆雪人,不过现在看着埋头做了一个多星期的设计结果,有点苦尽甘来的味道。
这次的课程设计,有两个方面的收获,一个是心态,一个是技术。
在心态上,端正了之前的心浮气躁、眼高手高,更加磨练了韧劲,增强了团队合作精神,提高了对软件开发中的工程设计思路的认识和理解。
技术上,在JSP动态网站开发方面积累了实践经验。
对CSS有了新的认识,提高了对HTML的熟练程度及使用技巧,尤其是与Javascript联手打造胖客户端的一些方法和思路。
在做这个网上书店系统的论坛时,帖子的发表功能采用的方法是UBB编辑器,通过开发UBB编辑器,接触到正则表达式并可以灵活运用。
在开发的过程中,无意中发现UBB编辑器的一个不足之处,它在获取当前激活选中区,即高亮文本块,或文档中用户可执行某些操作的其它元素的时候,用的是document.selection.createRange().duplicate(),所以当选中非编辑区的文本时(如同一个页面内的导航时),然后单击UBB编辑器的功能按钮,非编辑区的文本会响应UBB编辑器,这是开发人员不想看到的--它会导致页面凌乱。
查找相关资料也未能找到解决办法,除非摒弃UBB编辑器,改用HTML在线编辑器。
在实现购物车、订单的功能时,一开始想全部用数据库实现。
考虑到购物车中的书本并不一定是读者最终要购买的,如果用数据库实现,那么购物车的每次变动都要更新数据库,这必然会给数据库增加无谓的负担。
思考再三,自定义了一个固定形式的session来保存购物车的书目,当读者确定支付购买时,再将这个session“解密”后将购买信息写入数据库。
这个session的格式为:
。
-图书编号,购买数量-图书编号,购买数量-。
,当对购物车中的书目进行添加、更改、删除时,通过判断需要添加、更改、删除的书目在这个session中的位置(session为空,或是session中仅有的一个书目,或是session中最左的一个书目,或是session中最右的一个书目)来作不同的操作。
在测试中,发现这样实现的购物车功能有bug,原因是一本书的编号(如1)可能跟另一本书的编号(如21)的低位相同,于是我就想到,每次在操作这个session时先将其中的图书编号从左边用*号填充至10位,操作完成后去除所有*号还原。
问题迎刃而解。
整个网站系统共用一个信息提示的处理页面tip.jsp,该页面通过读取传进来的tip变量判断输出给用户的友好提示信息,传进来的desPage变量则为tip.jsp页面3秒倒计时后前往的页面地址。
网页头部页面head.jsp中调用了包java.text,其中通过实例化SimpleDateFormat类获取并格式化日期,所以在Eclipse中加载此项目时,除了正确配置数据源,还需要在项目的配置中加载Tomcat\common\lib\servlet-api.jar。
7.参考资料。
1.电子版网页制作完全手册(含DHTML参考、HTML参考、CSS属性参考),手册的内容全部来自MicrosoftMSDNLibrary,由lemon整理编辑,资料从下载。
2.电子版JScript语言参考手册(含正则表达式简介),手册的内容全部来自MicrosoftMSDNLibrary。
3.《JSP动态网站开发实用教程》,机械工业出版社,宝贝工作室策划。
4.电子版《JSP2.0技术手册》,林上杰、林康司著,电子工业出版社。