




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江工业大学之江学院Java网站架构技术大型实验报告班 级: 软件801 姓 名: * 学 号: * 指导老师: * 2011年12月22日网上书店系统设计1、实验目的1 运用以前学习的Ajax+JSP+JavaBean系统的开发方法完成网上购物系统架构设计和代码编写。2 掌握需求分析、文档编写和数据库设计等系统开发步骤。3 掌握系统测试方法。2内容设计1功能描述分为前端和后端,前端主要实现:(1) 能够购买,具有购物车功能/(2) 结帐(3) 用户注册(4) 具有查询功能后端主要实现:(1) 图书的修改,删除,添加(2) 图书分类(3) 用户权限分配2数据库表(数据字典),带表头(1) 用户表user_info数据项数据类型数据长度备注idInt11用户编号usernameVarchar14用户名passwordvarchar22密码super_idint11是否超级用户,1为是(2) 图书表book_info数据项数据类型数据长度备注idInt11书籍编号nameVarchar80书籍名称authorvarchar20作者priceint4单价photovarchar40存放封面地址Type_idInt11区别图书类型describevarchar250图书描述(3) 购物车表shop_bus数据项数据类型数据长度备注idInt11物品编号book_nameVarchar80书籍名pricevarchar5单价allpriceint6总价(4) 订单表list_info数据项数据类型数据长度备注idInt11订单编号all_priceInt14总价all_booksvarchar500所有书籍名称user_idint11订单所属ID3详细实现1运行环境:MyEclipse,TomCat6.02数据库连接:mySQL3主要页面,及页面功能描述登录页面:登录页面含有用户的登录功能,如果用户未注册过,还可以通过注册功能注册为会员,然后再登录该系统进入首页,同样,为了方便用户重新输入用户名与密码,还设置了用户名与密码重置的功能。如图1:图1 登录界面主要的登录代码如下:protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException HttpSession session = req.getSession();UserInfo user = new UserInfo();user.setUsername(req.getParameter(username);user.setPassword(req.getParameter(password);UserInfoDao userInfoDao = new UserInfoDaoImp();BookInfoDao bookInfoDao = new BookInfoDaoImp();if (userInfoDao.login(user) Page page = new Page();page.setPageSize(12);page.setNowPage(1);if (bookInfoDao.allCount() % 12 = 0) page.setAllPage(bookInfoDao.allCount() / 12); else page.setAllPage(bookInfoDao.allCount() / 12 + 1);List list = new ArrayList();list = bookInfoDao.getAllBooks(page);page.goTo();ShopBusDao shopBusDao = new ShopBusDaoImp();shopBusDao.delAll();user = userInfoDao.findByUsername(user);session.setAttribute(page, page);session.setAttribute(bookList, list);session.setAttribute(user, user);resp.sendRedirect(main.jsp); else req.setAttribute(error, 用户名或密码错误!);ServletContext sc = getServletContext();RequestDispatcher rd = null;rd = sc.getRequestDispatcher(/index.jsp);rd.forward(req, resp);注册页面:注册页面可以让需要注册的玩家填写注册信息,同意具有重置功能,如图2:图2 注册页面注册的的代码如下:protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException UserInfo user = new UserInfo();user.setUsername(req.getParameter(username);user.setPassword(req.getParameter(password);UserInfoDao userInfoDao = new UserInfoDaoImp();if (userInfoDao.reg(user) userInfoDao.addUserInfo(user);resp.sendRedirect(success.jsp); else req.setAttribute(error, 用户名已存在!);ServletContext sc=getServletContext();RequestDispatcher rd=null;rd=sc.getRequestDispatcher(/reg.jsp);rd.forward(req, resp);查询功能:查询的功能主要是通过选择查询条件书名或者作者,然后按照输入的关键字进行查询如图3和图4: 图3 查询功能 图4查询所得图书列表主要代码如下:protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException BookInfoDao bookInfoDao=new BookInfoDaoImp();Listlist=bookInfoDao.getBooksByKey(req.getParameter(keyWord);HttpSession session=req.getSession();session.setAttribute(listBookByKey, list);ServletContext sc = getServletContext();RequestDispatcher rd = null;rd = sc.getRequestDispatcher(/lookBooks.jsp);rd.forward(req, resp);通过关键字查找数据库的代码如下:public List getBooksByKey(String key) List list = new ArrayList();con = DBCon.GetConnectionMysql();String sql = SELECT * FROM book_info WHERE name LIKE %+key+%;PreparedStatement stmt = null;ResultSet rs = null;try stmt = con.prepareStatement(sql);/stmt.setString(1, key);rs = stmt.executeQuery();while (rs.next() BookInfo bk = new BookInfo();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 (SQLException e) e.printStackTrace();return list;购物车功能:购物车功能可以让会员把自己选择的书籍放入购物车,方便会员一次性下单也方便会员查看以选择的书籍,同时帮会员计算所需支付的总价,如图54:图5 购物车显示以已放入购物车中的主要代码如下:public ShopBus getLast() con=DBCon.GetConnectionMysql();ResultSet rs=null;PreparedStatement stmt=null;String sql=select * from shop_bus;ShopBus shopBus=new ShopBus();try 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); catch (SQLException e) e.printStackTrace();return shopBus;用于存放当前所购物车中的书籍信息,对数据库表shop_bus进行插入书籍信息的代码如下:public boolean add(ShopBus shopBus) boolean flag = false;con = DBCon.GetConnectionMysql();PreparedStatement stmt = null;String sql = insert into shop_bus (book_name,price,allPrice) values (?,?,?);try stmt = con.prepareStatement(sql);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); catch (SQLException e) e.printStackTrace();return flag;查看订单列表:查看订单列表便于会员查看自己以往所过买的书籍信息,同时该列表具有翻页功能使列表占有平面空间不大,如图6:图6 订单列表当购物车点击生成订单按钮时就已经完成对订单列表的信息增加,主要代码如下:public boolean add(ListInfo listInfo) boolean flag = false;con=DBCon.GetConnectionMysql();PreparedStatement stmt = null;String sql = insert into list_info (all_price,all_books,user_id) values (?,?,?);try stmt = con.prepareStatement(sql);stmt.setInt(1, listInfo.getAllPrice();stmt.setString(2, listInfo.getAllBooks();stmt.setInt(3, listInfo.getUserId();if (stmt.executeUpdate() = 1) flag = true;CloseSql.CloseDB(stmt, con); catch (Exception e) e.printStackTrace();return flag;分页功能及显示列表的代码如下:public List getAll(int nowPage,int id) Page page=new Page();page.setNowPage(nowPage);page.setPageSize(5);if (this.allCount(id) % 5 = 0) page.setAllPage(this.allCount(id) / 5); else page.setAllPage(this.allCount(id) / 5 + 1);page.goTo();Listlist=new ArrayList();if(page.getNowPage()=page.getAllPage()/假如存在当前页con=DBCon.GetConnectionMysql();PreparedStatement stmt = null;ResultSet rs=null;String sql = select * from list_info where user_id = ? limit ?,?;try stmt = con.prepareStatement(sql);stmt.setInt(2, (page.getNowPage() - 1) * page.getPageSize();stmt.setInt(3, page.getNowPage() * page.getPageSize();stmt.setInt(1, id);rs=stmt.executeQuery();while(rs.next()ListInfo listInfo=new ListInfo();listInfo.setId(rs.getInt(1);listInfo.setAllPrice(rs.getInt(2);listInfo.setAllBooks(rs.getString(3);listInfo.setUserId(rs.getInt(4);list.add(listInfo);CloseSql.CloseDB(rs, stmt, con); catch (Exception e) e.printStackTrace();return list;注销功能:方便用户使用完毕,用于退出网页,同时回到登录页面,注销前后如图7和图8: 图7注销前 图8注销后注销的主要代码如下:protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException HttpSession session = req.getSession();session.removeAttribute(page);session.removeAttribute(bookList);session.removeAttribute(user);req.setAttribute(error, 注销成功!);ServletContext sc = getServletContext();RequestDispatcher rd = null;rd = sc.getRequestDispatcher(/index.jsp);rd.forward(req, resp);图书信息列表:方便会员查看图书信息,便于选择,和通过点击购买按钮放入购物车,同样为了节省版面具有分页功能,如图9:图9图书信息列表显示图书信息的主要代码如下:public int allCount() int num = 0;con = DBCon.GetConnectionMysql();String sql = SELECT count(*) FROM book_info;PreparedStatement stmt = null;ResultSet rs = null;try stmt = con.prepareStatement(sql);rs = stmt.executeQuery();while (rs.next() num = rs.getInt(1);CloseSql.CloseDB(rs, stmt, con); catch (SQLException e) e.printStackTrace();return num;分页功能代码如下:public List getAllBooks(Page page) List list
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版图书馆图书捐赠与采购合同范本
- 2025保安人员劳动合同-大型活动专用安保服务协议
- 2025版土地征收与补偿咨询服务协议书
- 2025年度重型挖掘机租赁及操作人员培训服务协议书
- 2025电子商务合同监管中电子签名法律效力与监管探讨
- 2025版水路运输合同范本针对水上旅游客运及货运业务
- 2025版大型数据中心土石方施工合作合同模板
- 2025年度市政道路养护维修劳务合同范本
- 2025年度房地产项目土地一级开发中介服务合同
- 2025年度通勤车租赁合同模板(含司机服务)
- 食品行业标准化管理体系的构建研究
- 2025专精特新小巨人打分表(密件)
- 湖北农商行面试题目及答案
- 对便秘患者的健康教育
- 地产引流活动方案
- 2025年中国热敏标签市场调查研究报告
- 仓库不良品管理制度
- 干部出国境管理课件
- VR模拟器飞行员训练评估-洞察及研究
- 超声引导下动静脉内瘘穿刺技术培训课件
- 2025年公共基础知识真题库和答案
评论
0/150
提交评论