作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
该项目主要分为前台与后台;
前台主要功能包括:
登录、注册;首页、我发表的贴子、意见建议;版块列表、帖子查看、发贴回贴等;
普通用户登录后,主要功能有:
我的主页、用户中心、基本设置、版主申请、我的关注、屏蔽用户、我的私信等;
后台主要功能包括:
会员管理:禁言、封号、删除等;
站内资讯:添加、编辑、删除等;
友情链接:添加、编辑、删除等;
版块管理:添加修改删除分类、撤销版主等;
帖子管理:迁移、精华、置顶、删除等;
版主审核:通过、拒绝等;
意见建议:回复、删除;
敏感字符:添加、编辑、删除敏感字符;
举报信息:查看被举报人、举报人、举报原因等;
环境需要
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版本;
技术栈
1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+jQuery+LayUI
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入http://localhost:8080/cateforumssm 登录 注:tomcat中配置路径必须为/cateforumssm
代码实现:
//检查用户名的唯一性
@RequestMapping("checkUname")
public void checkUname(String uname, HttpServletRequest request, HttpServletResponse response){
try {
PrintWriter out = response.getWriter();
List<Member> list = memberDAO.checkUname(uname);
if(list.size()==0){
out.print(0);
}else{
out.print(1);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//注册
@RequestMapping("memberReg")
public String memberReg(Member member, HttpServletRequest request){
member.setDelstatus("0");
member.setIsjy("no");
member.setShstatus("待审核");
member.setSavetime(Info.getDateStr());
member.setIsfh("no");
memberDAO.add(member);
return "login";
}
//登录
@RequestMapping("memberLogin")
public void memberLogin(Member member ,HttpServletRequest request, HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();
List<Member> list = memberDAO.selectOne(member);
if(list.size()==0){
out.print(0);
}else if(list.size()==1){
Member mmm = list.get(0);
if(mmm.getIsfh().equals("no")){
request.getSession().setAttribute("member", list.get(0));
out.print(1);
}else{
out.print(2);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//退出
@RequestMapping("memberExit")
public void memberExit(HttpServletRequest request, HttpServletResponse response){
try {
PrintWriter out = response.getWriter();
request.getSession().removeAttribute("member");
out.print(0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//个人信息设置
@RequestMapping("memberSet")
public String memberSet(HttpServletRequest request){
Member m = (Member)request.getSession().getAttribute("member");
Member member = memberDAO.findById(m.getId());
request.setAttribute("member", member);
return "memberset";
}
//修改个人信息
@RequestMapping("memberEdit")
public String memberEdit(Member member,HttpServletRequest request){
Member m = (Member)memberDAO.findById(member.getId());
if(m.getUpass().equals(member.getUpass())){
member.setUpass(member.getNewsupass());
memberDAO.memberEdit(member);
request.setAttribute("msg", "编辑成功");
}else{
request.setAttribute("msg", "原密码错误");
}
return "memberset";
}
//我的主页
@RequestMapping("Home")
public String Home(int memberid,HttpServletRequest request){
Member mmm = (Member)request.getSession().getAttribute("member");
Member member = memberDAO.findById(memberid);
//查看关注人数
int gzmemberid = memberid;
List<Fans> fanslist = fansDAO.selectFans(gzmemberid);
//查看是否关注
String isgz = "";
if(mmm!=null){
HashMap<String, String> map = new HashMap<String, String>();
map.put("gzmemberid",String.valueOf(gzmemberid));
map.put("memberid",String.valueOf(mmm.getId()));
List<Fans> isgzlist = fansDAO.selectOne(map);
if(isgzlist.size()>0){
isgz="1";
}else{
isgz="0";
}
}
//是否签到
HashMap sgmap = new HashMap();
sgmap.put("memberid", memberid);
sgmap.put("savetime", Info.getDateStr().substring(0,10));
List<Signin> sglist = signinDAO.isSignin(sgmap);
//是否屏蔽
String ispb = "";
int pbmemberid = memberid;
if(mmm!=null){
HashMap<String, String> map = new HashMap<String, String>();
map.put("pbmemberid",String.valueOf(pbmemberid));
map.put("memberid",String.valueOf(mmm.getId()));
List<Pbinfo> ispblist = pbinfoDAO.selectOne(map);
if(ispblist.size()>0){
ispb="1";
}else{
ispb="0";
}
}
String index = request.getParameter("index");
int pageindex = 1;
if(index!=null){
pageindex = Integer.parseInt(index);
}
Page<Object> page = PageHelper.startPage(pageindex,6);
//会员发的帖子
List<Tzinfo> list = tzinfoDAO.myTzinfo(member.getId());
for(Tzinfo tzinfo:list){
List<Tzhtinfo> htlist = tzhtinfoDAO.selectHtinfo(tzinfo.getId());
tzinfo.setAllhtlist(htlist);
}
request.setAttribute("sglist", sglist);
request.setAttribute("ispb", ispb);
request.setAttribute("isgz", isgz);
request.setAttribute("fanslist", fanslist);
request.setAttribute("list", list);
request.setAttribute("member", member);
request.setAttribute("index", page.getPageNum());
request.setAttribute("pages", page.getPages());
request.setAttribute("total", page.getTotal());
return "home";
}
//用户中心
@RequestMapping("memberCenter")
public String memberCenter(HttpServletRequest request){
Member m = (Member)request.getSession().getAttribute("member");
if(m!=null){
List<Tzhtinfo> myhflist = tzhtinfoDAO.selectNorepetition(m.getId());
String index = request.getParameter("index");
int pageindex = 1;
if(index!=null){
pageindex = Integer.parseInt(index);
}
Page<Object> page = PageHelper.startPage(pageindex,6);
List<Tzinfo> list = tzinfoDAO.myTzinfo(m.getId());
for(Tzinfo tzinfo:list){
Bbstype ftype = bbstypeDAO.findById(tzinfo.getFid());
Bbstype stype = bbstypeDAO.findById(tzinfo.getSid());
tzinfo.setFtype(ftype);
tzinfo.setStype(stype);
List<Tzhtinfo> htlist = tzhtinfoDAO.selectHtinfo(tzinfo.getId());
tzinfo.setAllhtlist(htlist);
}
request.setAttribute("list", list);
request.setAttribute("myhflist", myhflist);
request.setAttribute("index", page.getPageNum());
request.setAttribute("pages", page.getPages());
request.setAttribute("total", page.getTotal());
return "membercenter";
}else{
return "login";
}
}
//后台查看会员列表
@RequestMapping("admin/memberList")
public String memberList(HttpServletRequest request){
String index = request.getParameter("index");
int pageindex = 1;
if(index!=null){
pageindex = Integer.parseInt(index);
}
Page<Object> page = PageHelper.startPage(pageindex,6);
List<Member> list = memberDAO.selectAll();
request.setAttribute("list", list);
request.setAttribute("index", page.getPageNum());
request.setAttribute("pages", page.getPages());
request.setAttribute("total", page.getTotal());
return "admin/memberlist";
}
//后台搜索会员列表
@RequestMapping("admin/searchMember")
public String searchMember(HttpServletRequest request){
String index = request.getParameter("index");
String key = request.getParameter("key");
int pageindex = 1;
if(index!=null){
pageindex = Integer.parseInt(index);
}
Page<Object> page = PageHelper.startPage(pageindex,6);
List<Member> list = memberDAO.searchKey(key);
request.setAttribute("key", key);
request.setAttribute("list", list);
request.setAttribute("index", page.getPageNum());
request.setAttribute("pages", page.getPages());
request.setAttribute("total", page.getTotal());
return "admin/membersearch";
}
//会员审核
@RequestMapping("admin/shStatus")
public String shStatus(HttpServletRequest request){
String type = request.getParameter("type");
String id = request.getParameter("id");
if(type.equals("tg")){
memberDAO.updateTgShstatus(Integer.parseInt(id));
}else if(type.equals("jj")){
memberDAO.updateJjShstatus(Integer.parseInt(id));
}
return "redirect:memberList.do";
}
//删除会员
@RequestMapping("admin/memberDel")
public String memberDel(int id,HttpServletRequest request){
memberDAO.delete(id);
return "redirect:memberList.do";
}
//会员禁言
@RequestMapping("admin/jinYan")
public void jinYan(int id, HttpServletRequest request,HttpServletResponse response) {
try {
memberDAO.updateIsjy(id);
PrintWriter out = response.getWriter();
out.print(0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//禁言解除
@RequestMapping("admin/jinyanJc")
public void jinyanJc(int id, HttpServletRequest request,HttpServletResponse response) {
try {
memberDAO.updateNojy(id);
PrintWriter out = response.getWriter();
out.print(0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行截图
源码获取
如果也想学习本系统,下面领取。回复:061ssm
👇🏻 源码可通过搜索下方 公众号 获取👇🏻