悦书网项目文档分析解析.docx
《悦书网项目文档分析解析.docx》由会员分享,可在线阅读,更多相关《悦书网项目文档分析解析.docx(30页珍藏版)》请在冰豆网上搜索。
悦书网项目文档分析解析
四川交通职业技术学院
信息工程系
项目设计文档
题目:
悦书网
班级软件13-1
学号201322272013202820132823
姓名杨红燕张敏程鑫
任课教师周春容
二O一五年六月
目录
1需求描述2
2系统功能描述3
3数据库设计4
4类设计6
5关键代码7
6系统界面20
7项目总结24
8程序错误报告25
9参考文献27
1需求描述
在当今这样一个信息化的时代,网络在我们的生活中几乎无处不在。
因此,网上书店的销售模式也变得不再惊奇。
由于JSP可以在85%以上的服务器上运行,而且JSP技术的应用程序比ASP的应用程序易于维护和管理。
所以,通过采用JSP技术设计开发在线书店系统符合时代的潮流、具有积极的进步意义。
我们基于这样的实际需求,结合教学需要设计开发了基于JSP的网上书店销售管理系统。
网上书店系统可以方便实现人们不用出家门就可逛书店和购买图书的愿望。
该系统要求实现合法用户在购书网站中对书籍的浏览、添加购物车到购买的整个流程的功能实现。
2系统功能描述
2.1系统功能图
系统功能图如图2-1所示。
图2-1系统功能图
2.2系统主流程图
系统主流程图如图2-2所示。
图2-2系统主流程图
3数据库设计
本系统选择MySQL数据库,建立名为mybookshop的数据库,涉及到的数据库表设计如下表所示。
表3-1users
表3-2books
表3-3publishers
表3-4categories
表3-5orderbook
表3-6orders
4类设计
本系统主要设计了entity、db、dao、cart、order、servlet这六大类,具体说明及类图如下:
(1)entity类,实体类。
图4-1Users.java
(2)dao类,操作数据库。
图4-2UserDao.java
(3)servlet类,调用dao中的方法,来根据数据库操作实现功能
图4-3UserServlet.java
5关键代码
5.1Model2实现用户登录、注册
(1)Jsp页面
//登录
opt=login"method="post"onsubmit="returnlogin_check()">
账 户:
maxlength="10"onkeyup="login_check();">
密 码:
size="31"maxlength="10"onkeyup="login_check();">
免费注册
忘记密码?
//注册
opt=register"method="post"id="form">
用户名:
|
真实姓名:
|
电话号:
|
登录密码:
|
确认密码:
|
邮箱账号:
|
家庭住址:
|
|
(2)dao方法
//登录
publicbooleandoLogin(StringloginId,StringloginPwd){
con=db.getConnection();
CallableStatementstmt;
Stringsql="callprcUserLogin(?
?
)";
try{
stmt=con.prepareCall(sql);
stmt.setString(1,loginId);
stmt.setString(2,loginPwd);
stmt.execute();
ResultSetrs=stmt.getResultSet();
if(rs.next())
returntrue;
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnfalse;
}
//注册用户
publicbooleandoRegister(Usersu){
con=db.getConnection();
CallableStatementstmt;
Stringsql="callprc_Insert(?
?
?
?
?
?
)";
try{
stmt=con.prepareCall(sql);
stmt.setString(1,u.getLoginId());
stmt.setString(2,u.getLoginPwd());
stmt.setString(3,u.getName());
stmt.setString(4,u.getAddress());
stmt.setString(5,u.getPhone());
stmt.setString(6,u.getMail());
stmt.execute();
inti=stmt.executeUpdate();
if(i>0)
returntrue;
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
finally
{
db.closeConnection((com.mysql.jdbc.Connection)con);
}
returnfalse;
}
(3)servlet类
//登录
protectedvoidLogin(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
Stringname=request.getParameter("username");
Stringpassword=request.getParameter("userpwd");
Usersu=newUsers();
u.setLoginId(name);
u.setLoginPwd(password);
UsersDaodao=newUsersDao();
booleanresult=dao.doLogin(name,password);
HttpSessionsession=request.getSession();
if(result){
session.setAttribute("name",name);
System.out.println("首页!
!
!
");
response.sendRedirect("index.jsp");
}
else{
System.out.println("登录失败");
response.sendRedirect("login.jsp");
}
}
//注册
protectedvoiddoRegister(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
Stringname=request.getParameter("username");
Stringrealname=request.getParameter("name");
StringloginPwd=request.getParameter("password");
StringloginId=request.getParameter("ckpassword");
Stringaddress=request.getParameter("address");
Stringphone=request.getParameter("phone");
Stringmail=request.getParameter("email");
Usersu=newUsers();
u.setAddress(address);
u.setLoginId(loginId);
u.setLoginPwd(loginPwd);
u.setMail(mail);
u.setLoginId(name);
u.setPhone(phone);
u.setName(realname);
UsersDaodao=newUsersDao();
booleanresult=dao.doRegister(u);
if(result)
{
request.getRequestDispatcher("login.jsp").forward(request,response);
}
else
{
request.getRequestDispatcher("register.jsp").forward(request,response);
}
}
5.2添加购物车、立即购买书籍、生成订单
(1)jsp页面(详细页面)
functiontosubmit(){
varform=document.getElementById("form");
document.form.action="CartServlet?
opt=buynow&isbn=${sessionScope.b.isbn}";
form.submit();
}
functionbuy(){
/*vara=document.getElementById("cart");
a.onclick();*/
varform=document.getElementById("form");
form.submit();
}
opt=showcart"class="showcart">查看购物车
悦书网
opt=buy"method="post"name="form"id="form">
---->
(2)jsp页面(购物车)
opt=clear"class="clear">清空购物车
| 图片 | 图书名 | 单价 | 数量 | 小计 | 删除 | forEachitems="${sessionScope.items}"var="its">
| | ${its.item.title} | ¥${its.item.unitPrice} | opt=UpDe&isbn=${its.item.isbn}">-${its.amount}opt=UpAdd&isbn=${its.item.isbn}">+ | ¥${its.amount*its.item.unitPrice} | opt=del&isbn=${its.item.isbn}">删除 |
forEach>
opt=showaddress&uname=${name}">
- 共花费${total}元
(3)jsp页面(结算并生成订单)
iftest="${sessionScope.ulist!
=null}">
forEachitems="${sessionScope.ulist}"var="u">
确认收货地址:
寄送至:${u.address}(${name}收)${u.phone}