版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统可行性和需求分析2.1可行性分析(前端框架layui)Java语言目前是使用最广泛的编程语言[12]。作为当前主流的开发技术之一,本系统也使用了JAVAEE企业级框架技术,在使用JAVAEE进行中小型项目开发制作时,大大降低了开发难度,提升了速度和效率。Ajax技术主要用于其中前后台的交互,在一定程度上减轻客户端负担还呢个增强前后台交互性。为了提高JavaWeb系统应用的稳定性、扩展性和维护性这里使用了SpringMVC框架。MySQL作为数据库的使用,相比其他它会更适合用于这样的中小型项目。该数据是基于javaEE开发的[8]。本论论坛所用到的开发工具和技术都是比较常见的,这一系统具备非常多的优势,比如,具备良好的伸缩性、较强的拓展性、界面大方美观、易维护等[6]。本系统设计为了能满足了用户大部分医美用户的需求,放弃使用传统的论坛方式,在内容上更方便用户,各个医美品牌动态随时都可以关注到,将医美品牌的内部环境让更多的用户知道,这样也起到了推广使用的目的。2.2功能需求分析本系统可分为以下两大功能模块,前台端口显示和后台端口管理。前台端口显示功能模块中主要有:游客可以在没有登录的情况下进入首页浏览信息、按关键字搜索信息,无法发布帖子。游客可注册成为会员,就可进行发布帖了。导航栏功能模块:这里讲将它分为几个功能模块,例如登录,注册,个人中心,退出及发布功能。游客访问可以注册为用户,以及在注册时需要接收短信验证码,成功注册后才能进行发布帖子,成功注册后,需要使用正确的帐户密码登录。点击“退出”可退出登录。系统首页功能模块:可按帖子项目类别来分板块显示不同主题。游客和会员都可以点击查看帖子详情。可查看最受欢迎的帖子项目的排行榜您可以单击该项目以查看帖子的详细信息,最受欢迎帖子的排名也可以查。详情页功能模块:可显示帖子项目详细信息,用户或成员可以对帖子项目发表评论。帖子发布功能模块:用户会员可以根据自身需求,发布相关帖子,例如有对某一项目有自己的看法,编辑后可点击“发布”按钮,即可发布帖子。个人中心功能模块:会员的基本信息可以查看,可以进行修改,可以查看发帖子记录,以及删除或修改帖子。后台显示功能模块中主要有:导航栏功能模块:这里分为两个见到那的部分,前台端口首页以及用户退出登录摁键。点击“前台首页”就跳转到系统前台端口首页。点击“退出登录”可以马上退出个人账号。菜单列表功能模块:分为4个部分:全部帖子、举报、待审核帖子、管理员。管理员模块:查看修改管理员个人信息,例如更改登录密码和换绑手机号码等。会员管理功能模块:这里可以查询会员的住址,性别,联系方式,真实姓名等信息,对会员其置顶帖子进行修改发布的功能。评论管理功能模块:用户会员的评论在这里可以查看,不符合主题的评论可以删除。帖子类型管理功能模块:帖子类型可以添加新的,帖子类型可以查询和删除。
图3.1所示为前后台功能模块。图3.1前后台功能模块图Picture3.1ThePictureRearandFrontfunctionmodulediagram
3系统总体设计3.1系统功能结构网上医美论坛可承载三类用户:未注册游客,注册用户,论坛管理员。未注册游客:可以查看论坛主页及帖子的详情,但不能对其进行操作。会员:游客权限可用,对于兴趣类目,可进行发帖提问及回复,对已发布的帖子内容可进行评论及删除,可修改个人信息,如登录密码、所在地、删除已发布帖子等操作,也可点击举报帖子。论坛管理员:维护系统的安全性,可以阻止或取消阻止非法帖子,并查看帖子是否合规发布等。3.2数据库表设计E-R模型是数据库设计的主要方法。主要根据系统中需要的数据进行设计,对数据进行一个存放及传输功能,能更好的体现数据之间的关联性以及数据收集、交替使用的行为。3.2.1用户注册表用户的注册登录信息储存本表,登录系统时调用内容,同时论坛管理员的登录信息也在此表内,是存放数据的储存表。如表3.1所示为注册表以及用户表的结构。
表3.1用户注册登录信息表Table3.1TheTableofRegisterLoginUserTable字段名说明数据类型长度是否为空是否主键Ididint10否是users用户名varchar235否是passwords密码varchar235否是type类型int11否否name昵称varchar255否是age年龄int11否否sex性别varchar255否否regTime注册时间datetime0否否address地址varchar255否否signature个性签名varchar225否否imgs头像图varchar225否否emails邮箱号varchar225否否
3.2.2帖子列表帖子列表,发布帖子后,用于在论坛中显示的帖子详细信息进行收录。前/后台端口帖子显示的主要数据是从帖子表中获取的。如表3.2所示为帖子列表的结构。表3.2帖子列表Table3.2TheTableofArticleTable字段名说明数据类型长度是否为空是否主键Ididint10否是titles文章标题varchar235否是content内容mediumtext0否是views建议int10否否goods商品int10否否rubbis垃圾信息int10否否creationDates发布日期datetime0否是introduction介绍varchar255否否coverimage封面图片varchar255否否userName用户名称varchar255否是type类型varchar255否是report举报int255否否3.2.3帖子收藏表帖子收藏表,对论坛发布的帖子进行收集之作用。前台端口收藏帖子显示的主要数据是从帖子收藏表中获得的帖子。如表3.3所示为收藏表的结构。表3.3帖子收藏表Table3.3TheTableofCollectTable字段名说明数据类型长度是否为空是否主键Ididint11否是userName用户名称varchar255否否articleID用户编号int255否否3.2.4回复评论表所有评论回复用该表保存,前台端口帖子回复数据从该表获取。如表3.4所示为回复评论表的结构。表3.4回复评论表Table3.4TheTableofCommentTable字段名说明数据类型长度是否为空是否主键Ididint10否是articleId文章编号int11否是user用户名称varchar255否是commentID注释编号int255否是3.2.5点赞评论表用于保存在论坛中,用户喜欢的帖子数据,可以用户信息资料中专属的位置查看点赞历史,方便用户寻找帖子;同时评论时的数据也会进行存储,用户体验良好的代表性之一也能在本表中体现。如表3.5所示为点赞评论结构。表3.5点赞评论表Table3.5TheTableofCommentlikeTable字段名说明数据类型长度是否为空是否主键Ididint11否是username用户名称varchar255否是email邮箱varchar255否否http外链网址varchar255否否commentcontent评论内容varchar255否是articleId文章编号int11否是creationdate创作日期datetime0否是responderName响应者名称varchar11否否read阅读int255否否like点赞int255否否3.2.6举报表论坛系统举报表,用于保存用户在论坛中遇到违规帖子或不良信息传播的举报功能。如表3.6所示为举报表结构。表3.6数据库设计(举报表)Table3.6TheTableofReportTable字段名说明数据类型长度是否为空是否主键ididint10否是contents内容varchar235否否articleId文章编号int255否否user用户名称varchar255否否
4系统的设计与实现4.1前台首页 首页是直接开放能看到的,这里比较直观地在首页展示了几大类,从项目到医院到产品等,都能点击查看。这边还进行了热门的帖子排行,主要是以点击量为排行。若想进行发帖评论点赞等功能,如果用户没有登录,则跳转到登录界面。前台首页界面如图4.1所示。图4.1前台首页截图Picture4.1ThePictureofFrontpagescreenshot主要代码:@RequestMapping(“/index”) publicStringindex(Modelmodel,HttpSessionsession){ throwsServletException,IOException{ Stringhot=req.getParameter(“hot”); Stringpage=req.getParameter(“page”); if(page==null){ page=”1”; }4.2登录注册点击注册/登录摁键,直接跳转至该功能界面,可进行相关信息的填写。或未注册游客想对某一帖子进行操作时,没有注册或没有登陆,将会直接跳转到这个界面,之后再进行操作。已注册用户,登录的时候输入相关提示按照上面的提示进行填写。注册界过程中会收到验证码,把这个码填进去。成功后,会自动跳到登录页面,即用新注册的帐户和密码登录。为了避免数据错误,登录和注册开启了验证功能,注册或登录时产生相应的提示,会在若账户已存在,或者验证码输入错误等进行。这样能提高用户的体验感,避免发生一号多用或被盗用的风险,设置的验证码,也提高了系统的安全性。如图4.2,图4.3所示为登陆、注册的界面。图4.2登录页面截图Picture4.2ThePictureofLoginPagescreenshot图4.3注册页面截图Picture4.3ThePictureofRegistrationPagescreenshot主要代码://登录 @Override protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{// HttpSessionsession=req.getSession(); session.setAttribute("user",null);@Override resp.sendRedirect(req.getContextPath()+"/login"); }protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException }//注册@Override protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ if(userName.getBytes().length!=userName.length()){ obj.put("code",1); obj.put("msg","账号不能包含特殊字符和中文"); }else //昵称是唯一的if(!UserDao.getInstance().verifyName(name)){ obj.put("code",1); obj.put("msg","昵称已存在,请换一个!");}else if(UserDao.getInstance().registUser(user)){ obj.put("code",0); obj.put("msg","注册成功,去登陆吧!"); }else{ obj.put("code",1); obj.put("msg","账号已存在啦,请换一个!"); } 4.3帖子表可以进行分类或搜索框来按照帖子名称进行搜索操作,用户对想要寻找的帖子进行的一个操作。可以看到帖子的一个排序及分类情况。如图4.4所示为帖子列表的界面。图4.4帖子列表页面截图Picture4.4ThePictureofPostlistpagescreenshot主要代码:@Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ Stringhot=req.getParameter("hot"); Stringpage=req.getParameter("page"); if(page==null){ page="1"; }//前台主要代码:<spanclass="fly-filter-rightlayui-hide-xs"><%if(!hot){%><ahref="${pageContext.request.contextPath}/search?<%=type%>"class="layui-this">按最新</a><spanclass="fly-mid"></span><ahref="${pageContext.request.contextPath}/search?<%=param%>&hot=true">按热议</a><%}else{%><ahref="${pageContext.request.contextPath}/search?<%=param%>">按最新</a><spanclass="fly-mid"></span><ahref="${pageContext.request.contextPath}/search?<%=param%>&hot=true"class="layui-this">按热议</a><%}%></span>4.4帖子内容详情点开帖子的链接,可以直接看到用户可以看到该帖子的详细信息,能查看帖子的实用性,进行一个比较。帖子的基本参数信息也在整个帖子详情页面里显示了,比如发布的时间等,方便用户查看信息时效性,还可以看到该帖子的评论,可以根据评价进行参考,给帖子的实用性进行一个评估,还可进行相关评论。如图4.5所示为帖子的详情界面。图4.5帖子详情页面截图Picture4.5ThePictureofPostdetailspagescreenshot主要代码:@Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{if(user!=null){ ArrayList<Integer>likeList=LikeDao.getInstance().findByUserAndArticle(user.getUser(),article.getId()); req.setAttribute("likeList",likeList); //没通过审核但不是该用户的帖子且不是管理员跳到404 System.out.println("管理员"+user.getType()); if(article.getAudit()==0&&(!user.getUser().equals(article.getUserName())&&user.getType()!=1)){ req.getRequestDispatcher("./static/404.jsp").forward(req,resp); return; 4.5评论帖子页面点击进入某一条帖子,若想对该帖子进行评论或收藏,当前状态是游客的话就会跳转到注册/登录界面,如果是我们的用户就可以进行这些操作了。在下图可以看到,用户可以在帖子下方进行收藏评论的操作。如图4.6所示为评论帖子界面。图4.6帖子评论页面截图Picture4.6ThePictureofPostcommentpagescreenshot主要代码:@Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ ArrayList<UserComment>list=CommentDao.getInstance().findMyReply(user.getName(),50); req.setAttribute("list",list); req.getRequestDispatcher("./static/user/message.jsp").forward(req,resp); }StringitemID=req.getParameter("itemid");if(itemID!=null){ Articlearticle=ArticleDao.getInstance().findByID(Integer.parseInt(itemID)); ArrayList<Article>views=ArticleDao.getInstance().viewsArticleDESC(10,0); req.setAttribute("views",views); if(article!=null) { HttpSessionsession=req.getSession(); Useruser=(User)session.getAttribute("user"); ArrayList<Comment>comments=CommentDao.getInstance().findByarticleId(article.getId()); req.setAttribute("comments",comments); req.setAttribute("article",article); if(user!=null){ ArrayList<Integer>likeList=LikeDao.getInstance().findByUserAndArticle(user.getUser(),article.getId()); req.setAttribute("likeList",likeList); //没通过审核但不是该用户的帖子且不是管理员跳到404 System.out.println("管理员"+user.getType()); if(article.getAudit()==0&&(!user.getUser().equals(article.getUserName())&&user.getType()!=1)){ req.getRequestDispatcher("./static/404.jsp").forward(req,resp); return; }4.6前台个人主页用户可在个人主页中心查看或修改相关的信息、包含发布的帖子、回评论、座右铭、帖子的收藏关注以及所在地等操作。如图4.7所示为前台个人主页。图4.7前台个人主页页面截图Picture4.7ThePictureofPersonalcenterpagescreenshot主要代码:
else{//查询自己的主页 if(user!=null){ ArrayList<Article>list=ArticleDao.getInstance().findByUser(user.getUser()); req.setAttribute("list",list); req.setAttribute("user",user); ArrayList<UserComment>userComments=CommentDao.getInstance().findUserComments(user.getUser(),10); req.setAttribute("userComments",userComments); //req.setAttribute("user",user.getUser()); req.getRequestDispatcher("./static/user/home.jsp").forward(req,resp); }else{//不是查询别人又没登陆的--去登录 resp.sendRedirect(req.getContextPath()+"/login"); }4.7后台首页下图能看到后台的首页界面,分为左侧的菜单栏和左上方的搜索框,以及跳转到前台的链接,中间部分主要是菜单内容展开,中间右上方可以对后台帖子进行筛选,导出,打印等操作。如图4.8所示为后台首页的界面。图4.8后台首页页面截图Picture4.8TheTableofBackgroundHomepagescreenshot主要代码:@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ HttpSessionsession=req.getSession(); Useruser=(User)session.getAttribute("user"); if(user!=null){//已经登录 if(user.getType()==1){//是管理员 req.getRequestDispatcher("./static/admin/index.jsp").forward(req,resp); }else{//不是管理员 resp.sendRedirect(req.getContextPath()+"/index"); } }else{//没登录 resp.sendRedirect(req.getContextPath()+"/login"); }4.8全部帖子管理登录后台后端口后,可以对“全部帖子”列中的帖子进行相关操作,并且可以查询和删除帖子。如图4.9所示为论坛的全部帖子的管理界面。Picture4.9ThePictureofAllpostsmanagementpagescreenshot主要代码:@Override protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException{ //TODOAuto-generatedcatchblock e.printStackTrace(); } }else{ return; } Gsongson2=newGson(); Messagem=newMessage(); m.setCode(0); m.setData(list); m.setMsg(""); m.setCount(list.size()); try{ resp.getWriter().println(gson2.toJson(m)); }catch(IOExceptione){ e.printStackTrace(); } }4.9举报管理举报管理则能查看帖子的详情以及被举报的原因,管理员审核该帖子是否有违反规则,若有则进行删除,举报操作成功,如图4.10所示为帖子举报管理界面。图4.10帖子举报管理页面截图Picture4.10ThePictureofPostreportmanagementpagescreenshot主要代码://举报@RequestMapping("/html/goods/list") @ResponseBody publicPager<Goods>shipInfoList( @RequestParam(value="curr",defaultValue="1")Integercurr, @RequestParam(value="limit",defaultValue="10")Integerlimit, Goodsgoods){ NotNullFielsToMapsFielsToMap=newNotNullFielsToMap(); Map<String,Object>map=sFielsToMap.convertObjToMap(goods); Pager<Goods>pager=newPager<>(curr,limit,map); List<Goods>list=goodsService.findListByPager(pager); Integercount=goodsService.findTotalByPager(pager); pager.setData(list); pager.setCount(count); returnpager; }4.10待审核帖子管理待审核处理的帖子,这里能看到帖子的ID、标题以及创作者和发布的类型,能查看帖子的内容决定是否通过发表,若审核通过则该帖子发布成功,若审核未通过,用户则回收到该帖子未通过的信息,可以进行操作的只有管理员。待审核帖子的界面如图4.11所示。图4.11待审核项目页面截图Figure4.11Itemstobeauditedpagescreenshot主要代码://待审核functiontableAudit(url){table.render({elem:'#test',url:url,page:true,toolbar:'#toolbarDemo'//开启头部工具栏,并为其绑定左侧模板,defaultToolbar:['filter','exports','print',{//自定义头部工具栏右侧图标title:'提示',layEvent:'LAYTABLE_TIPS',icon:'layui-icon-tips'}],method:'post',title:'用户数据表',cols:[[//表头{type:'checkbox',fixed:'left'},{field:'id',title:'ID',width:80,sort:true,fixed:'left',totalRowText:'合计:'},{field:'title',title:'标题',width:300},{field:'name',title:'作者',width:200,sort:true,totalRow:true},{field:'type',title:'类型',width:100},{fixed:'right',width:300,align:'center',toolbar:'#auditSc'}]]});}4.11管理员页面管理管理员的相关信息科在管理员页面进行查看修改,里面包含管理员个人主页、查看发布的帖、基本资料、管理员消息接收;可以对当前登录的管理员的个人信息进行查看并且修改,该操作在基本设置模块进行,特别注意用来登录的户名字是不允许修改的。如图4.12所示为管理员页面的界面。图4.12管理员页面截图Picture4.12ThePictureofAdministratorpagescreenshot主要代码://管理员页面@Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ req.getRequestDispatcher("./static/user/set.jsp").forward(req,resp); } @Override protectedvoi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业桥架搭建项目2024承包协议版B版
- 专业级电缆采购协议样本(2024年定制版)
- 2025厂房租赁合同补充协议(专业版)4篇
- 专属2024委托经营管理协议样本版B版
- 2025年度茶叶品牌独家代理合作协议书4篇
- 2025年度绿色建筑项目承包合同范本4篇
- 2025年度数据中心场地及设备租赁协议4篇
- 2025年度环保材料销售合同绿色生产与可持续发展4篇
- 2025年厂区配电系统安全运行保障合同4篇
- 二零二五版打桩工程劳务分包协议2篇
- 供销合同(完整版)
- 二零二五年企业存单质押担保贷款合同样本3篇
- 锅炉安装、改造、维修质量保证手册
- 油气行业人才需求预测-洞察分析
- (2024)河南省公务员考试《行测》真题及答案解析
- 1000只肉羊养殖基地建设项目可行性研究报告
- 《劳保用品安全培训》课件
- 2024版房屋市政工程生产安全重大事故隐患判定标准内容解读
- 2024院感年终总结报告
- 高一化学《活泼的金属单质-钠》分层练习含答案解析
- 04S206自动喷水与水喷雾灭火设施安装图集
评论
0/150
提交评论