JSP网上书店系统实验报告Word文档格式.docx
- 文档编号:22290637
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:17
- 大小:180KB
JSP网上书店系统实验报告Word文档格式.docx
《JSP网上书店系统实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《JSP网上书店系统实验报告Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
2数据库表(数据字典),带表头
(1)用户表user_info
数据项
数据类型
数据长度
备注
id
Int
11
用户编号
username
Varchar
14
用户名
password
varchar
22
密码
super_id
int
是否超级用户,1为是
(2)图书表book_info
书籍编号
name
80
书籍名称
author
20
作者
price
4
单价
photo
40
存放封面地址
Type_id
区别图书类型
describe
250
图书描述
(3)购物车表shop_bus
物品编号
book_name
书籍名
5
allprice
6
总价
(4)订单表list_info
订单编号
all_price
all_books
500
所有书籍名称
user_id
订单所属ID
3详细实现
1运行环境:
MyEclipse,TomCat6.0
2数据库连接:
mySQL
3主要页面,及页面功能描述
登录页面:
登录页面含有用户的登录功能,如果用户未注册过,还可以通过注册功能注册为会员,然后再登录该系统进入首页,同样,为了方便用户重新输入用户名与密码,还设置了用户名与密码重置的功能。
如图1:
图1登录界面
主要的登录代码如下:
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
HttpSessionsession=req.getSession();
UserInfouser=newUserInfo();
user.setUsername(req.getParameter("
username"
));
user.setPassword(req.getParameter("
password"
UserInfoDaouserInfoDao=newUserInfoDaoImp();
BookInfoDaobookInfoDao=newBookInfoDaoImp();
if(userInfoDao.login(user)){
Pagepage=newPage();
page.setPageSize(12);
page.setNowPage
(1);
if(bookInfoDao.allCount()%12==0){
page.setAllPage(bookInfoDao.allCount()/12);
}else{
page.setAllPage(bookInfoDao.allCount()/12+1);
}
List<
BookInfo>
list=newArrayList<
();
list=bookInfoDao.getAllBooks(page);
page.goTo();
ShopBusDaoshopBusDao=newShopBusDaoImp();
shopBusDao.delAll();
user=userInfoDao.findByUsername(user);
session.setAttribute("
page"
page);
bookList"
list);
user"
user);
resp.sendRedirect("
main.jsp"
);
}else{
req.setAttribute("
error"
"
用户名或密码错误!
"
ServletContextsc=getServletContext();
RequestDispatcherrd=null;
rd=sc.getRequestDispatcher("
/index.jsp"
rd.forward(req,resp);
}
}
注册页面:
注册页面可以让需要注册的玩家填写注册信息,同意具有重置功能,如图2:
图2注册页面
注册的的代码如下:
if(userInfoDao.reg(user)){
userInfoDao.addUserInfo(user);
success.jsp"
用户名已存在!
ServletContextsc=getServletContext();
RequestDispatcherrd=null;
rd=sc.getRequestDispatcher("
/reg.jsp"
查询功能:
查询的功能主要是通过选择查询条件书名或者作者,然后按照输入的关键字进行查询如图3和图4:
图3查询功能图4查询所得图书列表
主要代码如下:
BookInfoDaobookInfoDao=newBookInfoDaoImp();
List<
list=bookInfoDao.getBooksByKey(req.getParameter("
keyWord"
HttpSessionsession=req.getSession();
session.setAttribute("
listBookByKey"
ServletContextsc=getServletContext();
RequestDispatcherrd=null;
rd=sc.getRequestDispatcher("
/lookBooks.jsp"
rd.forward(req,resp);
通过关键字查找数据库的代码如下:
publicList<
getBooksByKey(Stringkey){
con=DBCon.GetConnectionMysql();
Stringsql="
SELECT*FROMbook_infoWHEREnameLIKE'
%"
+key+"
%'
;
PreparedStatementstmt=null;
ResultSetrs=null;
try{
stmt=con.prepareStatement(sql);
//stmt.setString(1,key);
rs=stmt.executeQuery();
while(rs.next()){
BookInfobk=newBookInfo();
bk.setId(rs.getInt
(1));
bk.setName(rs.getString
(2));
bk.setAuthor(rs.getString(3));
bk.setPrice(rs.getInt(4));
bk.setPhoto(rs.getString(5));
bk.setTypeId(rs.getInt(6));
bk.setDescribe(rs.getString(7));
list.add(bk);
CloseSql.CloseDB(rs,stmt,con);
}catch(SQLExceptione){
e.printStackTrace();
returnlist;
购物车功能:
购物车功能可以让会员把自己选择的书籍放入购物车,方便会员一次性下单也方便会员查看以选择的书籍,同时帮会员计算所需支付的总价,如图54:
图5购物车
显示以已放入购物车中的主要代码如下:
publicShopBusgetLast(){
con=DBCon.GetConnectionMysql();
ResultSetrs=null;
PreparedStatementstmt=null;
Stringsql="
select*fromshop_bus"
ShopBusshopBus=newShopBus();
stmt=con.prepareStatement(sql);
rs=stmt.executeQuery();
while(rs.next()){
shopBus.setId(rs.getInt
(1));
shopBus.setBookName(rs.getString
(2));
shopBus.setPrice(rs.getInt(3));
shopBus.setAllPrice(rs.getInt(4));
returnshopBus;
用于存放当前所购物车中的书籍信息,对数据库表shop_bus进行插入书籍信息的代码如下:
publicbooleanadd(ShopBusshopBus){
booleanflag=false;
insertintoshop_bus(book_name,price,allPrice)values(?
?
)"
stmt.setString(1,shopBus.getBookName());
stmt.setInt(2,shopBus.getPrice());
stmt.setInt(3,this.getLast().getAllPrice()+shopBus.getPrice());
if(stmt.executeUpdate()==1){
flag=true;
CloseSql.CloseDB(stmt,con);
returnflag;
查看订单列表:
查看订单列表便于会员查看自己以往所过买的书籍信息,同时该列表具有翻页功能使列表占有平面空间不大,如图6:
图6订单列表
当购物车点击生成订单按钮时就已经完成对订单列表的信息增加,主要代码如下:
publicbooleanadd(ListInfolistInfo){
insertintolist_info(all_price,all_books,user_id)values(?
stmt.setInt(1,listInfo.getAllPrice());
stmt.setString(2,listInfo.getAllBooks());
stmt.setInt(3,listInfo.getUserId());
if(stmt.executeUpdate()==1){
}catch(Exceptione){
分页功能及显示列表的代码如下:
ListInfo>
getAll(intnowPage,intid){
Pagepage=newPage();
page.setNowPage(nowPage);
page.setPageSize(5);
if(this.allCount(id)%5==0){
page.setAllPage(this.allCount(id)/5);
page.setAllPage(this.allCount(id)/5+1);
page.goTo();
list=newArrayList<
if(page.getNowPage()<
=page.getAllPage()){//假如存在当前页
select*fromlist_infowhereuser_id=?
limit?
stmt.setInt(2,(page.getNowPage()-1)*page.getPageSize());
stmt.setInt(3,page.getNowPage()*page.getPageSize());
stmt.setInt(1,id);
ListInfolistInfo=newListInfo();
listInfo.setId(rs.getInt
(1));
listInfo.setAllPrice(rs.getInt
(2));
listInfo.setAllBooks(rs.getString(3));
listInfo.setUserId(rs.getInt(4));
list.add(listInfo);
}
注销功能:
方便用户使用完毕,用于退出网页,同时回到登录页面,注销前后如图7和图8:
图7注销前图8注销后
注销的主要代码如下:
session.removeAttribute("
req.setAttribute("
注销成功!
图书信息列表:
方便会员查看图书信息,便于选择,和通过点击购买按钮放入购物车,同样为了节省版面具有分页功能,如图9:
图9图书信息列表
显示图书信息的主要代码如下:
publicintallCount(){
intnum=0;
SELECTcount(*)FROMbook_info"
num=rs.getInt
(1);
returnnum;
分页功能代码如下:
getAllBooks(Pagepage){
SELECT*FROMbook_infolimit?
stmt.setInt(1,(page.getNowPage()-1)*page.getPageSize());
stmt.setInt(2,page.getNowPage()*page.getPageSize());
4总结
通过这次实验,加深了对Ajax+JSP+JavaBean的理解与应用,也把一学期所学的知识都综合应用到一起,并解决了学习中存在的很多疑惑与难点,对实验中的Ajax和JavaBean的应用更熟练更透彻。
同样在实验中也发现了自身的许多不足与缺陷相信在接下来的学习中会努力的去解决。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 网上 书店 系统 实验 报告