JavaEE课程设计网上书店.docx
《JavaEE课程设计网上书店.docx》由会员分享,可在线阅读,更多相关《JavaEE课程设计网上书店.docx(13页珍藏版)》请在冰豆网上搜索。
![JavaEE课程设计网上书店.docx](https://file1.bdocx.com/fileroot1/2022-12/31/abfb669b-de3b-4e30-b725-35473b7ff887/abfb669b-de3b-4e30-b725-35473b7ff8871.gif)
JavaEE课程设计网上书店
计算机科学与技术专业10级
《JavaEE架构与程序设计》课程设计
设计名称:
黑科技网上书店系统
姓名:
班级:
学号:
课程设计起止时间:
2012年12月17日至12月28日
指导教师:
马海峰成绩:
课程设计成绩评定表
质量评价指标
评价项目
具体要求
满分
得分
学习态度
学习认真,态度端正,遵守纪律,出勤情况良好,能够独立完成设计工作。
20
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
20
设计说明书质量
设计方案正确、表达清楚;设计思路、方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。
30
答辩陈述和回答问题
陈述简明扼要,思路清晰,清楚流利,回答问题准确,基本概念清楚,有理有据,有一定深度。
30
评定成绩
指导教师签名
年月日
一.设计说明(项目组共同完成)
黑科技网上书店系统主要实现以下功能:
1.用户注册登陆
(1).用户注册
(2).验证用户注册信息
(3).会员登录购书
2.浏览图书
(1).浏览不同类别的书籍
(2).书籍查询
3.在线选购商品
(1).用户选购放入购物车
(2).用户管理自己的购物车
(3).用户提交订单
(4).用户查看自己提交的订单信息
4.书籍管理
(1).书籍信息管理
(2).书籍分类
黑科技网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。
一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。
本项目由小组共同完成的,本人负责用户注册登陆模块。
二.概要设计(项目组共同完成)
用户可以直接浏览图书、进行图书查询、查看书店简介、登录和注册查看图书详细资料、将图书加入购物车,但只有使用会员身份登录进入网上书店后才能提交购物车和查询订单。
用户在前台首先通过浏览或查询等手段找到要购买的图书,然后将选定的图书放入购物车中。
购物车是一个图书的临时存放地,用户可以对购物车进行管理,如删除图书或修改购买的数量。
用户完全选定了要购买的图书后,就可以提交购物车并生成订单系统会提示提交成功,前台的用户操作流程就结束了。
1.书图查询:
当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。
2.购物车管理:
当客户选择购买某图书产品时,应该能够将对应图书信息,如:
价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。
3.订单处理:
对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。
4.会员注册:
为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。
三.详细设计
1.代码结构
2.用户管理模块
(1)注册
1)了解需求
当用户点击"注册"按钮后,执行客户端js检查
邮箱地址:
非空,格式,唯一性
昵称:
非空,长度4-20(中文字符算2个)
密码:
非空,长度6-20(只允用字母和数字)
确认密码:
非空,与密码一致
验证码:
非空,正确性
2)通过客户端检查,完成以下处理
将表单数据写入到d_user表
生成验证码(采用uuid当做验证码)
给用户邮箱发送验证码(uuid-userId)
3)操作成功后进入邮箱验证页面
4)相关的数据表结构,了解d_user表结构
5)编写程序先编写服务器端实现
编写Action组件
根据请求页面定义input属性
根据响应页面定义output属性
定义业务方法execute,编写服务器处理.
以Action为主线,需要entity,dao,util,
编写相应实现
在模块配置文件中,配置Action组件
(2)邮箱验证
1)在邮箱验证页面,点击"完成"按钮,先执行js检查
非空检查
2)通过js检查,服务器端主要逻辑如下
将用户输入的uuid-userId验证码解析,解析出userId和uuid
去d_user表中检查uuid和userId正确性。
验证码正确,将d_user的is_email_verify设置成"Y",页面跳转register_ok.jsp
验证码不正确,页面返回verify_form.jsp,提示错误信息。
3)模块接口关系
允许进入∶进入注册成功提示页面
拒绝进入∶返回注册页面
(3)登录
1)该模块完成用户登录的过程,用户登录成功后才能完成图书购买等功能。
用户输入email和密码后,点击"登录"执行js检查
Email:
非空,格式
密码:
非空
2)通过js检查后,服务器端处理,验证email和密码的正确性,不正确返回登录,页面显示错误信息
3)如果email和密码正确,检查邮箱是否通过验证
如果未通过验证跳转到verify_form.jsp
4)如果邮箱通过验证,更新d_user表的last_login_time和last_login_ip信息,进入/main/main.jsp
5)将user信息写入session
(4)main.jsp页眉,登录状态显示
如果用户登录,显示用户昵称和登出按钮
如果未登录,只显示登录和注册按钮
发送一个action请求,将返回的信息填充到标签所在位置
actionname="findnew"namespace="/main"
executeResult="true">
action>
3.数据库表:
表1:
d_user
名
类型
长度
小数点
允许空值
id
int
12
0
email
varchar
50
0
nickname
varchar
50
0
允许
password
varchar
50
0
user_integral
int
12
0
is_email_verify
char
3
0
允许
email_verify_code
varchar
50
0
允许
last_login_time
bigint
20
0
允许
last_login_ip
varchar
15
0
允许
四.代码部分:
1.RegisterAction.java:
获得获得注册表单的内容,并写入数据库,将密码加密,并生成登录时间,登录Ip,和生成邮箱验证码并将这些信息存入User中,写入数据库。
将密码利用MD5加密。
生成邮箱验证码,将邮箱验证码给用户发送。
将表单中的email取出,并判断该email是否被注册过,return注册过返回true,没注册过返回false
publicclassRegisterActionextendsBaseAction{
privateUseruser;
privateStringemail;
privatebooleantag;
publicStringexecute(){
UserDAOuserDao=newUserDAOImpl();
try{
Stringpwd=MD5Util.encode(user.getPassword());
user.setPassword(pwd);
user.setUserIntegral(Constant.INTEGRAL_NORMAL);
user.setLastLoginTime(System.currentTimeMillis());
user.setLastLoginIp(request.getRemoteAddr());
user.setEmailVerify(false);
StringverifyCode=VerifyUtil.randomUUID();
user.setEmailVerifyCode(verifyCode);
userDao.insert(user);
StringemailCode=verifyCode+"("+user.getId()+")";
EmailUtil.sendEmail(user.getEmail(),"黑科技购书网邮箱验证",emailCode);
return"success";
}catch(Exceptione){
e.printStackTrace();
return"error";
publicStringisEmail(){
UserDAOud=newUserDAOImpl();
try{
System.out.println(email);
tag=ud.findEmail(email);
}catch(Exceptione){
e.printStackTrace();
}
return"success";
2.struts-user.xml配置文件:
tomcat接收到register.action请求,在struts-user.xml中查找名为“register”对应的类,执行该action的execute方法,并返回success。
--注册-->
/user/verify_form.jsp
imageStream
3.UserDAO.java:
UserDAO是对数据库中用户表进行操作的接口,完成了插入新用户的数据,可通过email和password对用户进行验证,并查找数据库中是否存在该email,还完成了对id的用户进行登录时间、ip以及邮箱验证的相关更新操作。
具体编码如下:
publicinterfaceUserDAO{
publicvoidinsert(Useruser)throwsException;
publicUserfindUser(Stringname,Stringpassword)throwsException;
publicbooleanfindEmail(Stringemail)throwsException;
publicvoidupdate(intid,longl,Stringip)throwsException;
publicvoidupdateEmailVerify(intid)throwsException;
publicUserfindById(intuid)throwsException;
}
五.运行结果
1.注册页面:
2.邮箱验证:
3.注册成功:
4.登陆页面:
5.登陆成功:
参考文献
[1]TimothyCLethbridge,RobertLaganière著,张红光等译.《面向对象软件工程》.机械工业出版社.2009.
[2]MarkPriestley著,龚晓庆等译.《面向对象设计UML实践》.清华大学出版社.2008.
[3]清宏计算机工作室编著.《JSP编程技巧》.机械工业出版社.2008.
[4]锐思创作室.《精通JBuilder3环境下的JAVA编程》.人民邮电出版社.2010.
[5]刘永泰.《深入JAVAServlet网络编程》.清华大学出版社.2009.
[6]吴雪莉.《Struts开发入门与项目实践》.人民邮电出版社.2008.