——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SSM技术论坛bbs系统(java+ssm+jsp+bootstrap+mysql)
项目介绍
本项目包含前后台,前台为普通用户登录,后台为管理员登录;
管理员角色包含以下功能: 管理员登录,删除或者编辑用户的帖子,后台管理,友情链接管理,用户管理,版块管理,网站设置,用户设置,版块主题管理等功能。
用户角色包含以下功能: 用户首页,用户登录注册,发表回复,查看帖子,发帖子,个人资料管理,查看我的帖子和回复等功能。
环境需要
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.数据库:MySql 5.7版本; 6.是否Maven项目: 否;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+bootstrap+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中beans.xml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入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
| request.getSession().setAttribute(PublicStatic.LOGIN_FLAG, "1"); Cookie[] cookies = request.getCookies(); for(Cookie cookie : cookies){ String name=cookie.getName(); if("javaeelogin".equals(name)){ String value=cookie.getValue(); User user=new User(); user.setCookieid(value); UserService userService=(UserService) ToolSpring.getBean("userService"); List<User> list = userService.find(user); if(list.size()>0){ User usersession=list.get(0); request.getSession().setAttribute(PublicStatic.USER, usersession); Jifen jifen=new Jifen(); jifen.setFenshu(PublicStatic.JIFEN_LOGIN); jifen.setUserid(usersession.getId()); jifen.setType("104"); jifen.setContent("每天第一次登录您获得"+PublicStatic.JIFEN_LOGIN+"积分"); JifenService jifenService=(JifenService) ToolSpring.getBean("jifenService"); int findnowcount = jifenService.findnowcount(jifen); if(findnowcount==0){ jifenService.insert(jifen); } Cookie c = new Cookie("login",usersession.getCookieid()); c.setMaxAge(60*60*24*14); c.setPath("/"); response.addCookie(c); } } } }
public void filefilter(HttpServletRequest request, HttpServletResponse response,FilterChain chain,String path)throws IOException, ServletException{ if(path.length()>6){ String parameter = path.substring(6, path.length()); String[] split = parameter.split("/"); if(split.length>0){ String flag=split[0]; String url=""; if("video".equals(flag)){ url="/download/downloadall.do?f="+parameter; }else if("file".equals(flag)){ url="/download/downloadall.do?f="+parameter;
|
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
| package com.yuanlrc.controller.index;
@Controller @RequestMapping("/tiezi") public class IndexTieziController { @Autowired BankuaiService bankuaiService; @Autowired TieziService tieziService; @Autowired ZhutiService zhutiService; @Autowired HuifuService huifuService; @Autowired
|
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
| userService.update(user); return "redirect:/user/index.do"; }
@ResponseBody @RequestMapping("del.do") public String del(HttpServletRequest request, Model model,User user) { return userService.delete(user.getId()); }
@ResponseBody @RequestMapping("updatepwd.do") public String updatepwd(HttpServletRequest request, Model model,User user) { String pwd="123456"; user.setPwd(Tool.MD5(pwd)); userService.update(user); return "1"; }
@ResponseBody @RequestMapping("updateflag.do") public String updateflag(HttpServletRequest request, Model model,User user) { userService.update(user); return "1"; }
@ResponseBody @RequestMapping("updategroup.do") public String updategroup(HttpServletRequest request, Model model,User user,int groupid) { boolean b = groupService.updategroupbyuser(user.getId(), groupid); if(b){ return "1"; }else{ return "0"; } }
@ResponseBody @RequestMapping("deluserallinfo.do") public String deluserallinfo(HttpServletRequest request, Model model,User user) { boolean b = userService.deluserallinfo(user.getId()); if(b){ return "1"; }else{ return "0";
|
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
| List<User> list = UserDao.findpage(page); page.setList(list); return page ; }
public void insert(User User) { UserDao.insert(User); }
public String delete(Integer id) { String result="1"; UserDao.delete(id); return result; } public void update(User User) { UserDao.update(User); } public User findbyid(User User) { List<User> list= UserDao.find(User); if(list.size()>0){ User=list.get(0); } return User; }
public List<User> findbyparentId(User User) { List<User> list= UserDao.find(User); return list; }
public List<User> find(User User) { return UserDao.find(User); }
public String isusername(String loginname) { String flag="1"; User user=new User(); user.setLoginname(loginname); List<User> list = UserDao.find(user); if(list.size()>0){ flag="0"; } return flag; } public String login(User user,HttpServletRequest request) {
|
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
| return null; } User sessionuser=(User)request.getSession().getAttribute(PublicStatic.USER); Map<String, Object> map= tieziService.findbytieziid(id+""); //验证是否有回复权限 String flag = userService.ishuifu(map.get("huifugroup")+"", sessionuser); if(!flag.equals("1")){ return flag; } Huifu huifu=new Huifu(); huifu.setContenthtml(editorhtml); huifu.setContenttxt(editortxt); huifu.setCreateuserid(sessionuser.getId()); huifu.setTieziid(id); huifu.setCreatetime(Tool.getyyyyMMddHHmmss()); huifu.setIsdel("0"); huifu.setHuifuid(huifuid); huifu.setOrderby(huifuService.maxobderby(id)); huifuService.insert(huifu); //回复记录积分 Jifen jifen=new Jifen(); jifen.setFenshu(PublicStatic.JIFEN_HUIFU); jifen.setUserid(sessionuser.getId()); jifen.setType("102"); jifen.setContent("您回复了帖子获得"+PublicStatic.JIFEN_HUIFU+"积分"); int findnowcount = jifenService.findnowcount(jifen); if(findnowcount<21){ jifenService.insert(jifen); } //增加消息记录 Message message=new Message(); message.setMessagetype("2"); message.setIsread("0"); message.setTitle("一条新的回复消息"); message.setContent("用户 "+sessionuser.getLoginname()+" 回复了我的帖子: <a href='"+request.getContextPath()+"/tiezi/"+id+"_1_1.html' target=\"_blank\" >"+map.get("name")+"</a> </br>回复内容: "+editortxt+" "); message.setCreatetime(Tool.getyyyyMMddHHmmss()); int userid=Integer.parseInt(map.get("createuserid").toString()) ; message.setUseridaccept(userid); messageService.insert(message); //启动缓存线程 new IndexThread().start(); return "1"; }
|
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
| @RequestMapping("index.do") public String findAllWhere(HttpServletRequest request, Model model,InnerLink innerLink,PageBean<InnerLink> page) { page = innerLinkService.findpage(innerLink,page); model.addAttribute("page", page); return "jsp/admin/innerlink/index"; }
@RequestMapping("toupdateoradd.do") public String toupdateoradd(Integer id, Model model) { if(id!=null){ InnerLink innerLink=innerLinkService.findbyid(id); model.addAttribute("innerLink", innerLink); } return "jsp/admin/innerlink/updateoradd"; }
@RequestMapping("updateoradd.do") public String updateoradd(HttpServletRequest request,InnerLink innerLink) { User user=(User)request.getSession().getAttribute(PublicStatic.USER); innerLink.setCreateuserid(user.getId()); innerLink.setIsuse("0"); innerLink.setType("0"); innerLink.setCreatetime(Tool.getyyyyMMddHHmmss()); String innerlinkhtml = innerLink.getInnerlink(); if(innerlinkhtml!=null&&innerlinkhtml.length()>0){ if(!innerlinkhtml.startsWith("http://")||!innerlinkhtml.startsWith("http://")){ innerlinkhtml="http://"+innerlinkhtml; innerLink.setInnerlink(innerlinkhtml); } } if(innerLink.getId()!=null){ innerLinkService.update(innerLink); }else{ innerLinkService.insert(innerLink); } return "redirect:index.do "; }
@ResponseBody
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=341122512008200ms
https://javayms.pages.dev?id=341122512008200ms