——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7、Tomcat≥8
开发工具 eclipse/idea/myeclipse/sts等均可配置运行
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM在线bbs论坛系统(java+ssm+jsp+bootstrap+jquery+mysql)
项目介绍
本系统分为前后台,前台主要功能为: 用户注册登陆、浏览帖子、发布帖子、个人信息管理、消息通知管理,积分管理,
后台管理功能有: 友情链接管理、板块管理、主题管理、用户管理、网站设置等等。本系统实现的功能非常丰富,可自由切换电脑版和手机版,访问时自动识别设备,也可按照ip来设置访问权限,已经达到了正式上线的系统水平,非常值得学习参考。本项目包含完整的源码、数据库文件。
管理员账号/密码:admin/123456 用户账号/密码: userloop/123456
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7版本;
技术栈
后端:Spring SpringMVC MyBatis 2. 前端:JSP+bootstrap+jQuery
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需要的jar包; 3. 将项目中beans.xml配置文件中的数据库配置改为自己的配置,主要用户名、密码; 4. 配置tomcat,然后运行运行项目,输入http://localhost:8080/ 登录
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 private static Logger log = Logger.getLogger(IndexTieziController.class);@RequestMapping("index.do") public String index (HttpServletRequest request, Model model,String bankuaiid,String id,String orderby,PageBean<Map<String, Object>> page) { long start = System.currentTimeMillis(); Map<String, Object> map= tieziService.findbytieziid(id); String findgroup = map.get("findgroup" )+"" ; User user=(User)request.getSession().getAttribute(PublicStatic.USER); boolean b=userService.isfind(findgroup,user); if (!b){ return "redirect:/topage/quanxian.do" ; } model.addAttribute("map" , map); if (user!=null ){ String flag = userService.ishuifu(map.get("huifugroup" )+"" , user); model.addAttribute("flag" , flag); } Map<String, Object> qmap=new HashMap<String, Object>(); qmap.put("id" , id); if ("0" .equals(orderby)){ qmap.put("orderby" , " desc" ); }else { qmap.put("orderby" , " asc " ); } tieziService.updatefindcount(Integer.parseInt(id)); PageBean<Map<String, Object>> huifumap = huifuService.findpage(qmap, page); model.addAttribute("huifumap" , huifumap); model.addAttribute("orderby" , orderby); Map<String, Object> tiezi=new HashMap<String, Object>(); String sql=Tool.equalsql(map.get("name" )+"" ); tiezi.put("sql" , sql); tiezi.put("id" , map.get("id" )); tiezi.put("bankuai_id" , map.get("bankuai_id" )); List<Tiezi> listtiezi = tieziService.equalstiezi(tiezi); model.addAttribute("listtiezi" , listtiezi); List<Tiezi> nextandlast = tieziService.nextandlast(tiezi); for (Tiezi tiezi2 : nextandlast) { int tieziid=Integer.parseInt(map.get("id" )+"" ); if (tiezi2.getId()<tieziid){ model.addAttribute("next" , tiezi2); }else { model.addAttribute("last" , tiezi2);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 } public static String getq_zy_yyyy_MM_dd () { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" ); long l=System.currentTimeMillis()-1000l *60 *60 *24 *7 ; return sdf.format(l); } public static int getRandom () { int max=100000 ; int min=10000 ; Random random = new Random(); int s = random.nextInt(max)%(max-min+1 ) + min; return s; } public static String getIps (HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for" ); if ((ip == null ) || (ip.length() == 0 ) || ("unknown" .equalsIgnoreCase(ip))) { ip = request.getHeader("Proxy-Client-IP" ); } if ((ip == null ) || (ip.length() == 0 ) || ("unknown" .equalsIgnoreCase(ip))) { ip = request.getHeader("WL-Proxy-Client-IP" ); } if ((ip == null ) || (ip.length() == 0 ) || ("unknown" .equalsIgnoreCase(ip))) { ip = request.getRemoteAddr(); } if (ip.equals("127.0.0.1" )) { log.error("获取客户ip失败:" + ip); ip = getUUID(); } return ip; } public static String getIp (HttpServletRequest request) { String ip = request.getHeader("X-Pounded-For" ); if (ip != null ) { return ip; } ip = request.getHeader("x-forwarded-for" ); if (ip == null ) { ip = request.getRemoteAddr(); if (ip.equals("127.0.0.1" ) || ip.equals("0:0:0:0:0:0:0:1" )) {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 PublicStatic.FILE_PATH=path; InfoService infoService=(InfoService) ToolSpring.getBean("infoService" ); Info info = infoService.find(); filterConfig.getServletContext().setAttribute("bbsinfo" , info); log.info("bbs-info-加载成功" ); new IndexThread().start(); } } package com.yuanlrc.controller.moderator;@Controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 map.put("flag", "1"); return map; } //取消设置精华 @ResponseBody @RequestMapping("qxshezhijinghua.do") public Map<String, String> qxshezhijinghua(HttpServletRequest request,int id) { Map<String, String> map=new HashMap<String, String>(); Tiezi tiezi=new Tiezi(); tiezi.setId(id); tiezi.setJinghua(""); User user=(User) request.getSession().getAttribute(PublicStatic.USER); tiezi.setLastupdate(""+user.getGroupname()+"\""+user.getLoginname()+"\"于"+Tool.getyyyyMMddHHmmss()+"将帖子取消精华"+"</br > "); tieziService.update(tiezi); map.put("flag", "1"); return map; } //板块置顶 @ResponseBody @RequestMapping("updatebankuaizhiding.do") public Map<String, String> updateallzhiding(HttpServletRequest request,int id) { Map<String, String> map=new HashMap<String, String>(); Tiezi tiezi=new Tiezi(); tiezi.setId(id); tiezi.setZhiding(PublicStatic.BANKUAIZHIDING); User user=(User) request.getSession().getAttribute(PublicStatic.USER); tiezi.setLastupdate(""+user.getGroupname()+"\""+user.getLoginname()+"\"于"+Tool.getyyyyMMddHHmmss()+"将帖子板块置顶"+"</br > "); tieziService.update(tiezi); map.put("flag", "1"); return map; } //取消板块置顶 @ResponseBody @RequestMapping("updatebankuaiqxzhiding.do") public Map<String, String> updateallqxzhiding(HttpServletRequest request,int id) { Map<String, String> map=new HashMap<String, String>(); Tiezi tiezi=new Tiezi(); tiezi.setId(id); tiezi.setZhiding(""); User user=(User) request.getSession().getAttribute(PublicStatic.USER); tiezi.setLastupdate(""+user.getGroupname()+"\""+user.getLoginname()+"\"于"+Tool.getyyyyMMddHHmmss()+"将帖子取消板块置顶"+"</br > "); tieziService.update(tiezi); map.put("flag", "1"); return map; } //删除帖子 @ResponseBody @RequestMapping("deltiezi.do") public Map<String, String> deltiezi(HttpServletRequest request,int id) { Map<String, String> map=new HashMap<String, String>(); tieziService.delete(id); huifuService.deletebytiezi(id);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 String findgroup = map.get("findgroup" )+"" ; User user=(User)request.getSession().getAttribute(PublicStatic.USER); boolean b=userService.isfind(findgroup,user);if (!b){ return "redirect:/topage/quanxian.do" ; } model.addAttribute("map" , map); if (user!=null ){ String flag = userService.ishuifu(map.get("huifugroup" )+"" , user); model.addAttribute("flag" , flag); } Map<String, Object> qmap=new HashMap<String, Object>(); qmap.put("id" , id); if ("0" .equals(orderby)){ qmap.put("orderby" , " desc" ); }else { qmap.put("orderby" , " asc " ); } tieziService.updatefindcount(Integer.parseInt(id)); PageBean<Map<String, Object>> huifumap = huifuService.findpage(qmap, page); model.addAttribute("huifumap" , huifumap); model.addAttribute("orderby" , orderby); Map<String, Object> tiezi=new HashMap<String, Object>(); String sql=Tool.equalsql(map.get("name" )+"" ); tiezi.put("sql" , sql); tiezi.put("id" , map.get("id" )); tiezi.put("bankuai_id" , map.get("bankuai_id" )); List<Tiezi> listtiezi = tieziService.equalstiezi(tiezi); model.addAttribute("listtiezi" , listtiezi); List<Tiezi> nextandlast = tieziService.nextandlast(tiezi); for (Tiezi tiezi2 : nextandlast) { int tieziid=Integer.parseInt(map.get("id" )+"" ); if (tiezi2.getId()<tieziid){ model.addAttribute("next" , tiezi2); }else { model.addAttribute("last" , tiezi2); }
——————————PayStart——————————
项目链接: https://javayms.github.io?id=441422272105200bn https://javayms.pages.dev?id=441422272105200bn