版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于WEB的校园二手网站系统设计摘要随着互联网科技的发展,网上购物为人们的生活带来了巨大的便利,但随之而来的,就是一些问题的出现。有些物品使用一段时间就会被闲置下来,得不到充分地利用,或者买家由于各方面的原因无法退货导致物品的浪费,因此有许许多多的二手网站就来帮助人们进行物品的二次销售,提高物品的利用效率。但对于大学生来说,大学生的需求范围较小,需求相对比较固定。市面上的二手网站会存在着一些鱼目混珠的现象,购买到不满意商品的风险就会加大甚至被骗。为了降低大学生购买二手商品的风险,方便大学生进行购物,校园二手网站的设计与开发就显得很有必要。通过校园二手网站的设计,实现大学生日常生活用品的购买交换,满足在校学生的生活、学习需求。校园二手网站管理系统,采用JSP与Servlet的相结合,利用SpringBoot框架构建,后台数据库采用MySQL存储,将idea作为开发工具,实现校园二手商品网站管理系统的设计。关键字:校园二手网站;WEB;JSP目录TOC\o"1-3"\u摘要 第5章系统详细实现在前面章节中,本文对校园二手商品管理系统的开发背景,开发目的、意义做了详细的介绍。并对校园二手商品管理系统的可行性研究与需求分析,关键技术等做了相关解释和简述,对于校园二手商品管理系统的设计与开发奠定了一定的基础。第三章关键技术的详细介绍,为校园二手商品管理系统的开发提供了强有力的技术支撑。尤其在第四章,对于校园二手商品管理系统的设计进行了详细的描述,使得用户能够更好地了解校园二手商品管理系统的功能和作用。校园二手商品管理系统分为用户板块和管理员板块两大板块,本章节将对每一个功能模块进行详细的解释和讲解。5.1用户登录页用户登录页,如图5—1所示。用户通过键入手机号码和密码,若键入的手机号码和密码经过检验和数据库中已注册的信息一致,则登录成功,若不一致,则无法登录,需要用户再次确认手机号码和密码的正确与否,进行账号的登录。图5-1用户登录页主要代码:/***登陆验证密码*@paramrequest*@return*/ /*@RequestMapping(value="/password",method=RequestMethod.POST) @ResponseBody publicStringpassword(HttpServletRequestrequest){ Stringphone=request.getParameter("phone"); Stringpassword=request.getParameter("password"); if((phone==null||phone=="")&&(password==null||password=="")){ return"{\"success\":false,\"flag\":true}"; }else{ Useruser=userService.getUserByPhone(phone); if(user==null){ return"{\"success\":false,\"flag\":false}";//账号错误 } Stringpwd=MD5.md5(password); if(pwd.equals(user.getPassword())){ return"{\"success\":true,\"flag\":false}";//密码正确 }else{ return"{\"success\":true,\"flag\":true}";//密码错误 } } }*//***验证登录**@paramrequest*@paramuser*@parammodelMap*@return*/@RequestMapping(value="/login")publicModelAndViewloginValidate(HttpServletRequestrequest,HttpServletResponseresponse,Useruser,ModelMapmodelMap){Usercur_user=userService.getUserByPhone(user.getPhone());Stringurl=request.getHeader("Referer");if(cur_user!=null){Stringpwd=MD5.md5(user.getPassword());if(pwd.equals(cur_user.getPassword())){if(cur_user.getStatus()==1){request.getSession().setAttribute("cur_user",cur_user);returnnewModelAndView("redirect:"+url);}}}returnnewModelAndView("redirect:"+url);}5.2用户注册页用户登录注册界面,如图5-2所示。用户可以通过键入昵称、手机号码、密码进行注册。手机号码必须是有效数字,且一个手机号码只能注册一次。通过允许用户在注册系统中直接键入有效的注册手机号码以及用户昵称和手机号码,系统自动保存生成所有关于用户的注册相关个人信息在用户系统管理后台的用户数据库中,记录用户的交易等操作。用户注册成功后,点击已有帐号、前去登录选项,跳转到登录界面,即可进行正常的登录。图5-2用户注册页主要代码:/***用户注册**@paramuser1*@return*/@RequestMapping(value="/addUser")publicStringaddUser(HttpServletRequestrequest,@ModelAttribute("user")Useruser1){Stringurl=request.getHeader("Referer");Useruser=userService.getUserByPhone(user1.getPhone());if(user==null){//检测该用户是否已经注册Stringt=DateUtil.getNowDate();//对密码进行MD5加密Stringstr=MD5.md5(user1.getPassword());user1.setCreateAt(t);//创建开始时间user1.setPassword(str);user1.setGoodsNum(0);user1.setStatus((byte)1);//初始正常状态user1.setPower(100);userService.addUser(user1);purseService.addPurse(user1.getId());//注册的时候同时生成钱包}return"redirect:"+url;}5.3用户个人信息页用户个人信息页面,如图5-3所示。用户通过验证登录已注册账号,进入个人信息中心,在个人中心界面可以进行相关操作。图5-3用户个人信息界面主要代码:/***个人中心**@return*/@RequestMapping(value="/home")publicModelAndViewhome(HttpServletRequestrequest){ModelAndViewmv=newModelAndView();Usercur_user=(User)request.getSession().getAttribute("cur_user");IntegeruserId=cur_user.getId();intsize=5;PursemyPurse=purseService.getPurseByUserId(userId);List<User>users=userService.getUserOrderByDate(size);List<Notice>notice=noticeService.getNoticeList();mv.addObject("notice",notice);mv.addObject("myPurse",myPurse);mv.addObject("users",users);mv.setViewName("/user/home");returnmv;}在网上银行个人信息管理中心,用户不仅可以在网上银行查看自己的个人银行卡网上钱包账户余额,并且用户需要同时进行网上点卡余额充值或者也就是提现等消费功能,且用户需要通过网上银行后台的业务管理员审核才能对其进行严格的业务审核。如图5-4所示:图5-4我的钱包界面在个人中心界面,用户可以查看自己的订单中心如图5-5、关注列表如图5-6、发布物品如图5-7、我的闲置如图5-8,还可以对个人设置如图5-9进行管理修改。图5-5订单中心界面图5-6关注列表界面图5-7发布物品界面图5-8我的闲置界面图5-9个人设置界面主要代码:/***个人信息设置**@return*/@RequestMapping(value="/basic")publicModelAndViewbasic(HttpServletRequestrequest){Usercur_user=(User)request.getSession().getAttribute("cur_user");IntegeruserId=cur_user.getId();PursemyPurse=purseService.getPurseByUserId(userId);ModelAndViewmv=newModelAndView();mv.addObject("myPurse",myPurse);mv.setViewName("/user/basic");returnmv;}/***我的闲置查询出所有的用户商品以及商品对应的图片**@return返回的model为goodsAndImage对象,该对象中包含goods和images,参考相应的类*/@RequestMapping(value="/allGoods")publicModelAndViewgoods(HttpServletRequestrequest){Usercur_user=(User)request.getSession().getAttribute("cur_user");IntegeruserId=cur_user.getId();List<Goods>goodsList=goodsService.getGoodsByUserId(userId);List<GoodsExtend>goodsAndImage=newArrayList<GoodsExtend>();for(inti=0;i<goodsList.size();i++){//将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtendgoodsExtend=newGoodsExtend();Goodsgoods=goodsList.get(i);List<Image>images=imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(i,goodsExtend);}PursemyPurse=purseService.getPurseByUserId(userId);ModelAndViewmv=newModelAndView();mv.addObject("goodsAndImage",goodsAndImage);mv.setViewName("/user/goods");mv.addObject("myPurse",myPurse);returnmv;}/***我的关注查询出所有的用户商品以及商品对应的图片**@return返回的model为goodsAndImage对象,该对象中包含goods和images,参考相应的类*/@RequestMapping(value="/allFocus")publicModelAndViewfocus(HttpServletRequestrequest){Usercur_user=(User)request.getSession().getAttribute("cur_user");IntegeruserId=cur_user.getId();List<Focus>focusList=focusService.getFocusByUserId(userId);List<GoodsExtend>goodsAndImage=newArrayList<GoodsExtend>();for(inti=0;i<focusList.size();i++){//将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtendgoodsExtend=newGoodsExtend();Focusfocus=focusList.get(i);Goodsgoods=goodsService.getGoodsByPrimaryKey(focus.getGoodsId());List<Image>images=imageService.getImagesByGoodsPrimaryKey(focus.getGoodsId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(i,goodsExtend);}PursemyPurse=purseService.getPurseByUserId(userId);ModelAndViewmv=newModelAndView();mv.addObject("goodsAndImage",goodsAndImage);mv.addObject("myPurse",myPurse);mv.setViewName("/user/focus");returnmv;}/***删除我的关注**@return*/@RequestMapping(value="/deleteFocus/{id}")publicStringdeleteFocus(HttpServletRequestrequest,@PathVariable("id")Integergoods_id){Usercur_user=(User)request.getSession().getAttribute("cur_user");Integeruser_id=cur_user.getId();focusService.deleteFocusByUserIdAndGoodsId(goods_id,user_id);return"redirect:/user/allFocus";}/***添加我的关注**@return*/@RequestMapping(value="/addFocus/{id}")publicStringaddFocus(HttpServletRequestrequest,@PathVariable("id")Integergoods_id){Usercur_user=(User)request.getSession().getAttribute("cur_user");Integeruser_id=cur_user.getId();//首先获取用户所有的关注列表List<Focus>focus=focusService.getFocusByUserId(user_id);//若关注列表为空,则直接添加关注if(focus.isEmpty()){focusService.addFocusByUserIdAndId(goods_id,user_id);return"redirect:/user/allFocus";}//遍历所有的关注列表for(Focusmyfocus:focus){intgoodsId=myfocus.getGoodsId();//若该商品已经被关注,则直接返回if(goodsId==goods_Value()){return"redirect:/user/allFocus";}}focusService.addFocusByUserIdAndId(goods_id,user_id);return"redirect:/user/allFocus";}/***我的钱包**@return返回的model为goodsAndImage对象*/@RequestMapping(value="/myPurse")publicModelAndViewgetMoney(HttpServletRequestrequest){Usercur_user=(User)request.getSession().getAttribute("cur_user");Integeruser_id=cur_user.getId();Pursepurse=purseService.getPurseByUserId(user_id);ModelAndViewmv=newModelAndView();mv.addObject("myPurse",purse);mv.setViewName("/user/purse");returnmv;}5.4校园二手商品管理系统主页校园二手商品管理系统主页共有八个商品展示页,用户可以根据左侧的导航栏快速选择商品分类。如图5-10所示:图5-10主页界面图5-11最新发布界面图5-12闲置数码界面图5-13校园代步界面主要代码:/***控制器商品*/@Controller@RequestMapping(value="/goods")publicclassGoodsController{@AutowiredprivateGoodsServicegoodsService;@AutowiredprivateImageServiceimageService;@AutowiredprivateCatelogServicecatelogService;@AutowiredprivateUserServiceuserService;@ResourceprivatePurseServicepurseService;/***首页显示商品,每一类商品查询6件,根据最新上架排序key的命名为catelogGoods1、catelogGoods2**@return*@throwsException*/@RequestMapping(value="/homeGoods")publicModelAndViewhomeGoods()throwsException{ModelAndViewmodelAndView=newModelAndView();//商品种类数量intcatelogSize=7;//每个种类显示商品数量intgoodsSize=6;List<Goods>goodsList=null;List<GoodsExtend>goodsAndImage=null;/*获取最新发布列表*/goodsList=goodsService.getGoodsOrderByDate(goodsSize);goodsAndImage=newArrayList<GoodsExtend>();for(intj=0;j<goodsList.size();j++){//将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtendgoodsExtend=newGoodsExtend();Goodsgoods=goodsList.get(j);List<Image>images=imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(j,goodsExtend);}Stringkey0="catelog"+"Goods";modelAndView.addObject(key0,goodsAndImage);/*获取其他列表物品信息*/for(inti=1;i<=catelogSize;i++){goodsList=goodsService.getGoodsByCatelogOrderByDate(i,goodsSize);goodsAndImage=newArrayList<GoodsExtend>();for(intj=0;j<goodsList.size();j++){//将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtendgoodsExtend=newGoodsExtend();Goodsgoods=goodsList.get(j);List<Image>images=imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(j,goodsExtend);}Stringkey="catelog"+"Goods"+i;modelAndView.addObject(key,goodsAndImage);}modelAndView.setViewName("goods/homeGoods");returnmodelAndView;}5.5管理员后台主页管理员通过用户名和密码登录后台管理界面,用户名和密码检验通过,则管理员登录,若错误,则管理员重新键入用户名和密码再次登录。如图5-14所示:图5-14管理员后台登录界面管理员进入后台后,有如图5-15用户管理功能、如图5-16商品管理功能、如图5-17订单管理功能、如图5-18钱包管理功能、如图5-19系统设置功能:图5-15用户管理功能图5-16商品管理功能图5-17订单管理功能图5-18钱包管理功能图5-19系统设置功能主要代码:@RequestMapping(value="/userList")@ResponseBodypublicModelAndViewgetUserList(@RequestParam("pageNum")intpageNum){ModelAndViewmodelAndView=newModelAndView();intpageSize=10;inttotal=userService.getUserNum();List<User>rows=userService.getPageUser(pageNum,pageSize);UserGriduserGrid=newUserGrid();userGrid.setCurrent(pageNum);userGrid.setRowCount(pageSize);userGrid.setRows(rows);userGrid.setTotal(total);modelAndView.addObject("userGrid",userGrid);modelAndView.setViewName("admin/user/user_list");returnmodelAndView;}/***查看用户**@paramrequest*@return*/@RequestMapping(value="/getUser")@ResponseBodypublicUsergetUser(HttpServletRequestrequest){Stringid=request.getParameter("id");Useruser=userService.getUserById(Integer.parseInt(id));returnuser;}/***修改用户**@paramrequest*@paramuser*@return*/@RequestMapping(value="/updateUser",method=RequestMethod.POST)@ResponseBodypublicStringupdateUser(HttpServletRequestrequest,Useruser){Userusers=userService.selectByPrimaryKey(user.getId());user.setPassword(users.getPassword());try{userService.updateUserName(user);}catch(Exceptione){return"{\"success\":false,\"msg\":\"保存失败!\"}";}return"{\"success\":true,\"msg\":\"保存成功!\"}";}/***删除用户**@paramrequest*@paramids*@return*/@RequestMapping(value="/deleteUser",method=RequestMethod.POST)@ResponseBodypublicStringdeleteUser(HttpServletRequestrequest,@RequestParam(value="ids[]")String[]ids){try{for(inti=0;i<ids.length;i++){userService.deleteUserById(ids[i]);}}catch(Exceptione){return"{\"success\":false,\"msg\":\"删除失败!\"}";}return"{\"success\":true,\"msg\":\"删除成功!\"}";}/***查询用户**@paramrequest*@paramuser*@return*/@RequestMapping(value="/searchUser",method=RequestMethod.POST)@ResponseBodypublicModelAndViewsearchUser(HttpServletRequestrequest,Useruser){ModelAndViewmv=newModelAndView();intpageNum=1;intpageSize=10;inttotal=userService.getUserNum();Stringphone=user.getPhone();Stringusername=user.getUsername();Stringqq=user.getQq();List<User>rows=userService.getPageUserByUser(phone,username,qq,pageNum,pageSize);UserGriduserGrid=newUserGrid();Usersearchuser=newUser();searchuser.setPhone(phone);searchuser.setUsername(username);searchuser.setQq(qq);userGrid.setCurrent(pageNum);userGrid.setRowCount(pageSize);userGrid.setRows(rows);userGrid.setTotal(total);mv.addObject("userGrid",userGrid);mv.addObject("searchuser",searchuser);mv.setViewName("admin/user/user_list");returnmv;}
系统的运行及测试第6章系统的运行及测试6.1测试用例(1)用户登录模块功能测试结果,如表6-1所示:表6-1用户登录模块测试详细表测试功能目标方法期望结果结论登录系统手机号码与密码经过校验,正确并正常跳转进入系统主页输入正确的用户名与密码正常跳转进入系统主页正确完成自动跳转手机号码或密码错误则无法跳转进入主页输入错误的手机号码或密码无法跳转正确完成手机号码校验手机号码不符合规范进行提示输入不符合规范的手机号码显示提示正确完成(2)用户注册模块的功能测试结果,如表6-2所示:表6-2用户注册模块测试详细表测试功能目标方法期望结果结论注册系统输入昵称、手机号码、密码后完成注册跳转进入系统主界面输入正确格式的昵称、手机号码与密码。注册信息自动保存在数据库中并进入系统主界面正确完成注册错误提示注册过的手机号码无法重复注册输入已经注册过的手机号码。提示无法注册正确完成(3)能模块功能测试结果,如表6-3所示:表6-3个人信息功能模块测试详细表测试功能目标方法期望结果结论点击进入个人中心在右上角点击能够正常进入个人中心用户成功进入个人中心。成功进入个人中心正确完成打开钱包,进行充值、体现点击我的钱包,能够跳转进入充值、提现界面点击我的钱包功能。正常进入我的钱包,可以充值提现正确完成显示我的信用积分看到信用积分正常显示进入个人中心,正常显示。显示我的信用积分正确完成订单中心进行查看能够进入订单中心进行查看点击左侧导航栏的订单中心,进入此界面。正常显示用户的订单详情正确完成显示用户关注列表以及内容看到登录用户关注的商品信息,界面正常显示鼠标点击左侧导航栏中的关注列表,进入。正常显示登录用户关注的商品列表正确完成用户出售商品功能用户能够发布商品,填写商品信息,并提示发布成功。点击左侧导航栏的发布物品。进行商品信息填写,点击发布物品,提示成功。成功提交物品。正确完成个人信息修改及管理用户可以对自己的个人信息进行修改选择需要修改的个人信息进行修改。显示修改成功正确完成(4)管理员登录后对后台进行管理功能测试结果,如表6-4所示:测试功能目标方法期望结果结论管理员通过键入用户名和密码点击后台管理系统管理员键入正确的用户名和密码可以进入后台。管理员键入正确的用户名和密码。成功进入后台管理系统正确完成管理员输入错的用户名或密码无法进入后台管理系统管理员键入不正确的用户名或密码无法正常进入。管理员键入错误的用户名或密码。无法进入后台管理系统正确完成在用户管理功能进行查找管理员查询到相关信息输入正确的手机号码或者昵称或者QQ,点击查找。显示查找结果正确完成在用户管理功能进行删除管理员查询到相关信息并进行删除输入正确的手机号码或者昵称或者QQ,查找成功之后进行删除。成功删除用户正确完成在用户管理功能进行用户管理管理员对用户信息进行查看和修改1.鼠标点击查看成功显示用户信息2.鼠标点击修改并进行显示成功查看用户信息成功显示修改成功正确完成商品信息列表进行商品的查找、删除管理员查找商品管理员删除商品输入正确的商品id或者名称或者状态点击查找。查找成功之后点击删除成功显示查找结果显示删除成功正确完成在商品列表对商品进行管理管理员对商品详情进行查看管理员对商品进行删除点击需要查看的商品进行查看点击删除按钮,删除该商品显示商品详情提示删除成功正确完成订单列表进行订单的查找、删除管理员查找订单管理员删除订单1.输入正确的订单编号或者订单信息或者状态点击查找。2.查找成功之后点击删除1.成功显示查找结果2.显示删除成功正确完成在订单列表对订单进行管理管理员对订单详情进行查看管理员对订单进行修改1.点击需要查看的订单进行查看2.点击修改按钮,修改订单信息1.显示订单详情2.显示修改成功正确完成在钱包列表查看用户管理员可以查看用户的审核状态是否通过输入正确的用户id进行查找显示用户审核状态正确完成在钱包列表进行模糊查找显示未审核用户,通过审核点击尚未审核,进行查找,通过哟过户的申请提示审核通过正确完成系统设置显示个人信息正常显示个人信息点击系统设置下隐藏的个人信息显示个人信息正确完成修改密码修改管理员登录密码键入原密码和新密码提示修改成功正确完成6.2兼容性测试兼容性测试是开发软件系统的关键步骤之一,只有通过在不同浏览器上进行测试,才可以使校园二手商品管理系统更好的应用在不同的浏览器上,给用户更好地使用的体验,不用因为不兼容的情况四处下载浏览器等,提高用户的体验感。兼容性测试结果如下表所示:表6-3浏览器兼容性测试表浏览器名称浏览器系统版本兼容性Firefox80.0.1(64位)兼容MicrosoftEdge90.0.818.66兼容6.3测试环境本地开发环境:操作系统:Windows10开发软件:IntelliJIDEA2020.3.2Java版本:Java1.8.0Tomcat版本:ApacheTomcat7.0.96数据库:Mysql6.4测试结果与评价通过对校园二手商品网站管理系统的测试后,测试结果达到预期目标,系统运行正常,显示正常。参考文献总结之所以选择校园二手商品管理系统这个选题,是因为自身认为一个好的系统设计也要贴合生活的实际,设计开发出来的东西要能够对使用者有帮助,有较好的使用前景,而不是为了做设计而选择一个系统草草了事。从选题通过到正式完成校园二手商品管理系统,中间经历了许多的曲折。由于之前对于Java学习的不重视,导致自己准
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年泰安航空职业学院高职单招职业技能考试题库及参考答案详解AB卷
- 保险AI在保险行业标准制定
- 2027年吉林长白山职业学院高职单招职业技能考试题库及参考答案详解【典型题】
- 2024年雅砻江职业学院单招职业技能考试题库及参考答案详解AB卷
- 2024年沧州滨海职业学院高职单招职业技能考试题库及答案详解【网校专用】
- 2026年石家庄幼儿师范高专高职单招职业适应性测试考试题库含答案详解(突破训练)
- 2026年多组学数据的联合富集分析方法
- 2024年张家界文旅职业学院单招综合素质考试题库及参考答案详解【培优A卷】
- 2025年碣远职业学院高职单招职业技能考试题库带答案详解(A卷)
- 2026年秋季大学新生军训 早操与晨练制度
- 制造业产品质量保障体系及控制措施
- 数控机床装调维修工综合知识理论考试题库
- 布鲁菌病课件
- (正式版)QC∕T 1207-2024 燃料电池发动机用空气压缩机
- 2024年越南自动X射线检测(AXI)行业现状及前景分析2024-2030
- 烧烤视频拍摄脚本
- 《抹灰工程》课件
- PCIe-SSD在数据中心的应用分析
- 格鲁夫给经理人的第一课-学习分享
- DB4401-T 166-2022《1:500+1:1000+1:2000地形图图式》地方标准
- LY/T 1814-2009自然保护区生物多样性调查规范
评论
0/150
提交评论