小组成员 | 负责部分 |
徐宁阳 | servlet |
王子晨 | MySQL数据库搭建及jdbc |
李奇 | web界面 |
1.系统概述
在IntelliJ IDEA平台上,实现了二手书城系统。二手书城网站是我们结合了自身情况,在了解了班级、学校的同学的一些需求的基本情况下,为解决许多同学看书难,找书难,借书难等问题而编写的网站,通过此网站希望将资源整合并有效解决资源浪费等问题,最终实现书籍共享、知识共享、资源共享。数据库结构有多种成分,包括:数据表、记录、字段等。而该数据库结构由商家、管理员、买家构成,包含订单、书籍、购物车、用户、回收、评论等数据表。主体功能有:二手书城的首页页面、商品展示区、商品详情、购物车、订单、广场、后台管理。买家:首页有美观大气、简洁明了的前端页面,相应的商品展示,简洁易懂的导航栏及搜索框;商品展示区展示管理员审核通过的书籍供客户进行挑选;若有中意书籍,可进入商品详情旋入购物车或者立即购买;购物车可就行结算和删除;订单则是在商品详情区购买和购物车结算生成的订单,可进行订单记录的删除。商家:同样可以进行购买,还有着后台管理,可在其中添加想要售卖的书籍和修改书籍的相关信息,允许其操作属于自己售卖的书籍。管理员:有着最大的权限,可以购买,可以在后台审核商家书籍,修改删除书籍,删除订单。广场是大家都可以在其中发表动态,比如发表自己想要的二手书和想要售卖的二手书。这就是二手书城的总体概述,尽最大的努力实现功能,满足用户需求。
2.系统功能分析
主页:顶部实现注册和登录功能,导航栏实现首页、商品、市场、购物车、订单等网页的链接跳转,以及实现书本的分类和搜索框的搜索功能。中间区域包括热门书籍和推荐书本,并实现图片轮播功能;网站的公告以及搜索榜的实现。底部区域为服务保障以及版权相关信息。
商品页:从数据库读取所有的在售书本展示在页面中,书本信息包括图片、书名、价格、月销等,通过点击书本图片或书名可以进入到商品详情页,在商品详情页也要展示图片的基本信息还要加上库存提示,并且通过点击“+”"-"按钮实现商品数量的变化,实现数量不能大于库存并且不能小于1的约束条件,同时显示出对应数量的书本的总金额,最后可以通过此页实现加入购物车和立即购买的功能,加入购物车将商品信息传入到购物车页面,而立即购买将转入订单页提示购买信息。
购物车、订单、市场三个页面是相对于顾客而言的,若未登录将提示“先登录”。
购物车:此界面展示对应用户对商品进行加入购物车操作的信息,包括图片、数量总金额等,用户可对此商品进行删除或结算等功能,相应的在数据库中也进行删除操作,同时保证结算时跳转到订单页面。
订单页:订单页展示的是用户在确认购买商品后生成相应的订单,包括订单号、用户名、书本编号、数量、总金额、日期等属性。同时实现数据库中相应书本月销增加对应数量而库存减少相同数量的条件。
市场页:市场页是用户发表评论的地方,在登录状态下,用户可通过上方文本框编辑文字并发表在市场中,也可通过搜索栏搜索对应关键字的用户的评论,并且设置敏感词汇的不搜索情况并提示重新输入。下方是展示其他用户的评论的区域,可以通过此区域看到其他用户的基本信息及评论内容,基本信息包括其他用户头像,昵称,发表时间等,并且实现每一个用户发表的评论内容按时间排序,最新评论的内容在最上面。
注册页:注册用户需输入用户名,手机号,学号,密码,学院和班级,其中手机号以数字“1”开头,第二位为3/4/5/8且总位数为11位,用正则表达式实现,学号设置为统一位数,密码实现隐藏且需为数字字母混合使用,学院与班级实现级联显示。注册成功后跳转到登录页面以登录,同时在数据库中登记该用户的对应信息,否则提示重新注册。
登录页:通过获取数据库中已注册的对应用户的相关信息来判定是否登录成功,即用户名与密码是否正确。
3.主要内容
主要的类
页面1:首页
功能说明:本页面是项目的首页界面,主要实现项目主体功能的展示和导航栏的链接地址的说明,实现“预约回收”、“商家申请”、“反馈建议”的实现界面,并根据销量以及用户的关键搜索词条对书本进行热销和热搜的展示,导航栏书本的多种分类也能让用户更加方便的进入相应类型书本的界面。
主要代码:
<!-- 顶部区 -->
<nav>
<div class="nav">
<img src="images/logo.png" alt="">
<div>
<a href="" target="_blank">首页</a>
<a href="commodity.jsp" target="_blank">商品</a>
<a href="comment.jsp">广场</a>
<a href="javascript:;" onclick="islog()">购物车</a>
<a href="javascript:;" onclick="islog()">订单</a>
</div>
</div>
<div class="nav_butt">
<a href="LoginE.jsp" class="login">登录</a>
<a href="Register.jsp" target="_blank" class="reg">注册</a>
</div>
</nav>
<!-- 热卖好物 -->
<div class="clear"></div>
<div class="other">
<div class="block"></div>
<h2>热卖好物</h2>
</div>
<div class="hot_sell">
<%
bookinfor_impl book = new bookinfor_impl();
String name = request.getParameter("name");
String sql = null;
sql = "select * from bookinfor order by mon_sell desc limit 10";
List<bookinfor> lst = book.getboooks(sql);
request.setAttribute("bookLst", lst);
%>
<c:forEach items="${ bookLst}" var="book">
<div class="card">
<!-- 内层边框 -->
<div class="card_box">
<a href="showdetail.jsp?depiction=${ book.depiction}&book_pic=${ book.book_pic}
&new_price=${ book.new_price}&quantity=${ book.quantity}&identifier=${ book.identifier}" ><img src="${ book.book_pic}" alt=""></a>
<a href="showdetail.jsp?depiction=${ book.depiction}&book_pic=${ book.book_pic}
&new_price=${ book.new_price}&quantity=${ book.quantity}&identifier=${ book.identifier}" class="desc">${ book.depiction}</a>
<div class="new_price">¥${ book.new_price}</div>
<div class="old_price"><del>¥${ book.old_price}</del></div>
<div class="mon_sell">月销 ${ book.mon_sell}</div>
</div>
</div>
</c:forEach>
</div>
<!-- 侧边栏 -->
<aside>
<div class="aside_area">
<div>
<a href="javascript:;"><img src="images/客服.png" alt=""></a>
<a href="javascript:;">客服</a>
</div>
<div>
<a href="javascript:;"><img src="images/反馈.png" alt=""></a>
<a href="javascript:;">反馈</a>
</div