基于javaweb的SSM技术论坛bbs系统(java+ssm+jsp+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

580023462402

590023462402

000023472402

010023472402

020023472402

030023472402

基于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项目: 否;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+bootstrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中beans.xml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录

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) {
// TODO Auto-generated method stub
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


项目链接:
https://javayms.github.io?id=341122512008200ms
https://javayms.pages.dev?id=341122512008200ms