课程设计报告
课 程 名 称: JAVA高级应用课程设计
设 计 题 目:网上书城系统——会员登陆模块的设计与实现
目 录
(一)背景概述
随着信息时代的到来,各行各业的工作模式发生了翻天覆地的变化,越来越多的商家加入线上购物服务,以期打开更大的销售市场,书店也不例外。过去消费者想要购买图书图需要去实体书店挑选,而书店的种类多无法在短时间内找到自己心仪的书籍,且大部分图书的价格不够透明,消费者多是被动购买,消费体验相对较差。
我国第一家网上书城于1997年由杭州市新华书城开办,该店只维持了1年最终便以失败告终"。经过十几年的发展,今天我国的网上书城已经颇具规模,能够在网上买卖图书的网站已经有数百家,并形成了各种不同的发展模式和格局,其营业额在图书零售市场上约占5%P'。但是各网上书城的盈利情况良莠不齐,生生死死不计其数,领跑的始终是当当网和卓越亚马逊两家,二者在网店经营中一直保持了优势地位,并占据整个网上书城营业额的80%。
线上购物网的流行让实体书店面临了巨大的挑战,寻求新的销售方式迫在眉睫。本次研究目的是为消费者购买书籍提供方便,提高全民读书率。商家可以通过后台更加轻松的管理书籍资源;消费者可以随时随地通过网站浏览购买自己喜欢的书,价格更加透明,充分提高了消费体验。
(二)发展前景
随着我国互联网的稳步发展以及网上预订的普及,社会福利以及人民大众日常生活工程质量的提高,国人起初高度重视对于理论知识的谋求,网上图书资料经销该种方式把不会取得充沛的施展。与传统模式相比网上图书销售有许多优势,成本低,选择快捷,随时随地都可以购买。相比于传统的购书模式,网上购书也进一步减轻了工作人员的工作量,提高工作效率。
图 1 主流的网上书城-新华书店
依据网上商场的需要,总体设计分成前台客户控制系统及后盾管理信息系统。本论要设计登陆,注册,管理,留言等模块。使用计算机网络对图书销售各种信息进行管理,改进传统售书的不足,提高系统的可操作性,可靠性。促使原来简单的工作简单化,方便快捷图书信息内容的查问,尽量地迎合购书顾客的购书志愿。
通过计算机存贮的资料,网上书店毫不费力地建立起自己庞大的全球化读者信息库,对客户需求和产品行情的预测也就更准确。从而有效地降低库存,减少资金占用。此外,网上虚拟书店,业务环节大为简化,能节约费用开支,降低销售成本。以及我国网络信息基础设施建设的逐步完善和电子商务环境的成熟,不难预测网上书店的访问量和成角量都将得到极大的提升。可以说网上书店的销售不仅是传统销售渠道的发展和补充,也必将是未来图书销售的发展方向。
(三)本文要点
网上书城是一种全新的电子商务模式,人们可以通过卢络和计算机实现购买图书的需求。这种全新的消费方式为商享带来了销售及宣传的新思路。商家可通过网上书城发布现有臣书的信息,同时处理消费者的订单,与消费者沟通交流,最后安排发货。不仅有利于消费者节省时间,也为商家拓展了销有渠道。本次研究设计的网上书城使用了JAVA语言以及JavaWeb技术,并利用MYSQL数据库开发。实现了网上书城购物系统。
(一)需求分析
近年来,随着 lnternet的迅速崛起,互联网已成为收集信息的最佳渠道并逐步进入传统的流通领域。手是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。网上购物系统作为 B2B ( Business to Business, 即企业对企业)B2C( Business to Customer,即企业对消费者),C2C ( Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。在传智书城项目中主要讲解的是如何建设 B2C 的网上购物系统。该项目应满足以下需求。
- 统一友好的操作界面,具有良好的用户体验。
- 商品分类详尽,可按不同类别查看商品信息。
- 公告栏、本周热卖商品的展示。
- 网站首页轮播图满足图书广告的需要。
- 用户信息的注册和验证、用户登录功能。
- 通过图书名模糊搜索相关图书。
- 通过购物车一次购买多件商品。
- 提供简单的安全模型,用户必须登录后购买图书。
- 用户选择商品后可以在线提交订单。
- 用户可以查看自己的订单信息。
- 设计网站后合,用来管理网站的各项基本数据。
- 系统运行安全稳定且响应及时。
(二)可行性分析
1.技术可行性
根据综合分析,要最终实现网上书城系统,需要用到JAVA EE技术、数据库技术(JDBC及 Mysql),以及软件工程的具体方法等内容。而这些技术在当前IT行业看来都已经发展的相当得成熟。因此,从技术上的角度考虑,最终实现该网上书城系统是确实可行的。
2.经济可行性
从经济上来考虑,这方面的投资少,回收快,而且无所谓存货等,所以特别适合小商店和个人在网上创业。从启动资金来看,传统的地面开店,门面租金加装修费,还有首批进货资金等等,少说也需要几万元的启动资金或者更多。而网上开店所需的启动资金却少得多的多,只需要架设一台主机服务器,配备一定的操作人员就可以。
3.操作可行性
网上书城系统的界面设计时充分考虑用户的习惯,用户体验良好,操作简单;数据录入迅速、规范、可靠;统计准确;适应力强;容易扩充。
(一)功能详细介绍
网上书城的用户权限主要有注册用户、非注册用户以及管理员。注册用户能够在网站内浏览图书信息,进行图书购买和留言评价等操作;非注册用户只能浏览图书信息,无法购买;管理员可上传图书信息,同时维护系统的正常运行。

图 2 系统首页
(二)系统功能结构
1.前台功能结构

图 3 前台功能结构
2.后台功能结构

图 4 后台功能结构
(三)系统开发环境及运行环境
- 系统开发平台:Eclipse。
- 数据库管理系统软件:MySQL。
- Java开发包:JDK8.0以上。
- 运行平台:Windows10
- Web服务器:tomcat7.0。
- 浏览器:谷歌浏览器。
(一)会员登陆模块的实现
【主要程序代码】
<div id="divcontent">
<form action="${pageContext.request.contextPath}/register" method="post" onsubmit="return checkForm();">
<table width="850px" border="0" cellspacing="0">
<tr>
<td style="padding: 30px"><h1>新用户注册</h1>
<table width="70%" border="0" cellspacing="2" class="upline">
<tr>
<td style="text-align: right; width: 20%">邮箱:</td>
<td style="width: 40%">
<input type="text" class="textinput" id="email" name="email" onkeyup="checkEmail();"/>
</td>
<td colspan="2"><span id="emailMsg"></span><font color="#999999">请输入有效的邮箱地址</font></td>
</tr>
<tr>
<td style="text-align: right">用户名:</td>
<td><input type="text" class="textinput" id="username" name="username" onkeyup="checkUsername();"/>
</td>
<td colspan="2"><span id="usernameMsg"></span><font color="#999999">字母数字下划线1到10位, 不能是数字开头</font></td>
</tr>
<tr>
<td style="text-align: right">密码:</td>
<td><input type="password" class="textinput" id="password" name="password" onkeyup="checkPassword();"/></td>
<td><span id="passwordMsg"></span><font color="#999999">密码请设置6-16位字符</font></td>
</tr>
<tr>
<td style="text-align: right">重复密码:</td>
<td>
<input type="password" class="textinput" id="repassword" name="repassword" onkeyup="checkConfirm();"/>
</td>
<td><span id="confirmMsg"></span> </td>
</tr>
<tr>
<td style="text-align: right">性别:</td>
<td colspan="2">
<input type="radio" name="gender" value="男" checked="checked" /> 男
<input type="radio" name="gender" value="女" /> 女
</td>
<td> </td>
</tr>
<tr>
<td style="text-align: right">联系电话:</td>
<td colspan="2">
<input type="text" class="textinput"
style="width: 350px" name="telephone" />
</td>
<td> </td>
</tr>
<tr>
<td style="text-align: right">个人介绍:</td>
<td colspan="2">
<textarea class="textarea" name="introduce"></textarea>
</td>
<td> </td>
</tr>
</table>
<h1>注册验证</h1>
<table width="80%" border="0" cellspacing="2" class="upline">
<tr>
<td style="text-align: right; width: 20%">输入验证码:</td>
<td style="width: 50%">
<input type="text" class="textinput" />
</td>
<td> </td>
</tr>
<tr>
<td style="text-align: right; width: 20%;"> </td>
<td rowspan="2" style="width: 50%">
<img src="${pageContext.request.contextPath}/imageCode" width="180"
height="30" class="textinput" style="height: 30px;" id="img" />
<a href="javascript:void(0);" onclick="changeImage()">看不清换一张</a>
</td>
</tr>
</table>
<table width="70%" border="0" cellspacing="0">
<tr>
<td style="padding-top: 20px; text-align: center">
<input type="image" src="images/signup.gif" name="submit" border="0" width="140" height="35"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</div>
【效果截图】


图 5 用户登录界面
(二)商品浏览模块的实现
【主要程序代码】
<table cellspacing="0" class="listcontent">
<tr>
<td>
<h1>商品目录</h1>
<hr />
<h1>全部商品</h1> 共${bean.totalCount}种商品
<hr />
<div style="margin-top:20px; margin-bottom:5px">
<img src="client/images/productlist.gif" width="100%" height="38" />
</div>
<table cellspacing="0" class="booklist">
<tr>
<c:forEach items="${bean.ps}" var="p" varStatus="vs">
<td>
<div class="divbookpic">
<p>
<a href="${pageContext.request.contextPath}/findProductById?id=${p.id}"><img
src="${pageContext.request.contextPath}${p.imgurl}"
width="115" height="129" border="0" /> </a>
</p>
</div>
<div class="divlisttitle">
<a href="${pageContext.request.contextPath}/findProductById?id=${p.id}">书名: ${p.name}<br />售价:¥${p.price} </a>
</div>
</td>
<%-- <c:if test="${vs.count%4==0}">
</c:if> --%>
</c:forEach>
</tr>
</table>
<!-- <table cellspacing="0" class="booklist">
<tr>
</tr>
</table> -->
<div class="pagination">
<ul>
<c:if test="${bean.currentPage!=1}">
<li class="nextPage">
<a href="${pageContext.request.contextPath}/MenuSearchSerlvet?currentPage=${bean.currentPage-1}&textfield=${bean.searchfield}"><<上一页</a>
</li>
</c:if>
<c:if test="${bean.currentPage==1}">
<li class="disablepage"><<上一页</li>
</c:if>
<c:forEach begin="1" end="${bean.totalPage}" var="pageNum">
<c:if test="${pageNum==bean.currentPage}">
<li class="currentpage">${pageNum }</li>
</c:if>
<c:if test="${pageNum!=bean.currentPage}">
<li><a href="${pageContext.request.contextPath}/MenuSearchSerlvet?currentPage=${pageNum}&textfield=${bean.searchfield}">${pageNum}</a>
</li>
</c:if>
</c:forEach>
<c:if test="${bean.currentPage==bean.totalPage||bean.totalPage==0}">
<li class="disablepage">下一页 >></li>
</c:if>
<c:if test="${bean.currentPage!=bean.totalPage&&bean.totalPage!=0}">
<li class="nextpage">
<a href="${pageContext.request.contextPath}/MenuSearchSerlvet?currentPage=${bean.currentPage+1}&textfield=${bean.searchfield}">下一页>></a>
</li>
</c:if>
</ul>
</div></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
【效果截图】


图 6 商品浏览界面
[1]徐峰,陈暄.UML面向对象建模基础[M].北京:中国水利水电出版社,2006.
[2]张海,藩著.软件工程导论[M].4版.北京:清华大学出版社,2003.
[3]陆惠恩,张成姝.实用软件工程[M].2版.北京:清华大学出版社2016.
| 课程设计总结 | (本课程设计主要实现哪些功能?是如何解决设计中遇到的问题的?通过课程设计收获到了什么?如何进行下一步的学习?心得体会等) 通过此次课程设计,使我更加扎实的掌握了JavaWeb开发方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 在课程设计过程中,我们持续发现错误,持续改正,持续领悟,持续获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一实行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,能够说得是苦多于甜,但是能够学到很多很多的东西,同时不但能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提升自己的实际动手水平和独立思考的水平。在设计的过程中遇到问题,能够说得是困难重重,但可喜的是最终都得到了解决。 实验过程中,也对团队精神的实行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。 |
4102

被折叠的 条评论
为什么被折叠?



