网站建设 团队/站长素材官网免费
源码获取:俺的博客首页 "资源" 里下载!
项目介绍
本项目包含前后台,前台为普通用户登录,后台为管理员登录;
管理员角色包含以下功能:
管理员登录,删除或者编辑用户的帖子,后台管理,友情链接管理,用户管理,版块管理,网站设置,用户设置,版块主题管理等功能。
用户角色包含以下功能:
用户首页,用户登录注册,发表回复,查看帖子,发帖子,个人资料管理,查看我的帖子和回复等功能。
环境需要
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/ 登录
用户操作页面:
/** 用户操作页面* */
@Controller
@RequestMapping("/user")
public class UserContriller {@AutowiredUserService userService;//跳转个人首页首页@RequestMapping("index.do")public String index(HttpServletRequest request) {if(Tool.ismobile(request)){return "jsp/mobile/user/user";}else{return "jsp/index/user/user-ziliao";}}//查看个人资料@RequestMapping("ziliao.do")public String ziliao(HttpServletRequest request) {if(Tool.ismobile(request)){return "jsp/mobile/user/user-ziliao";}else{return "jsp/index/user/user-ziliao";}}//修改用户@RequestMapping("update.do")public String update(HttpServletRequest request, Model model,User user) {User sessionuser=(User)request.getSession().getAttribute(PublicStatic.USER);user.setId(sessionuser.getId());userService.update(user);user=userService.findbyuserid(sessionuser.getId());request.getSession().setAttribute(PublicStatic.USER, user);return "redirect:/user/index.do";}//退出@RequestMapping("logout.do")public String logout(HttpServletRequest request,HttpServletResponse response) {HttpSession session = request.getSession();session.invalidate();Cookie[] cookies=request.getCookies();for(Cookie cookie: cookies){cookie.setMaxAge(0);cookie.setPath("/");response.addCookie(cookie);}return "redirect:/";}//跳转修改密码@RequestMapping("topwd.do")public String topwd(HttpServletRequest request) {return "jsp/index/user/user-pwd";}//修改密码@ResponseBody@RequestMapping("pwd.do")public String pwd(HttpServletRequest request,String pwd ,String newpwd) {User sessionuser=(User)request.getSession().getAttribute(PublicStatic.USER);User user=new User();user.setId(sessionuser.getId());user.setPwd(pwd);String login = userService.login(user, request);if("1".equals(login)){user.setPwd(Tool.MD5(newpwd));userService.update(user);return "1";}else{return "0";}}}
后台用户管理页面:
/** 后台用户管理页面* */
@Controller
@RequestMapping("/admin/user")
public class AdminUserContriller {@AutowiredUserService userService;@AutowiredGroupService groupService;@AutowiredJifenGroupService jifenGroupService;//跳转首页@RequestMapping("index.do")public String add(HttpServletRequest request, Model model,User user,PageBean<User> page) {page = userService.findpage(user,page);model.addAttribute("page", page);model.addAttribute("quser", user);return "jsp/admin/user/index";}//更新@RequestMapping("update.do")public String update(HttpServletRequest request, Model model,User user) {User sessionuser=(User)request.getSession().getAttribute(PublicStatic.USER);user.setId(sessionuser.getId());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";}}@RequestMapping("tooptions.do")public String tooptions(HttpServletRequest request, Model model,User user){user = userService.findbyid(user);model.addAttribute("user", user);return "jsp/admin/user/option";}/*** 设置用户vip等级* @param request* @param model* @param user* @return*/@RequestMapping(value="set_vip.do",method=RequestMethod.GET)public String setVip(Model model,User user){user = userService.findbyid(user);model.addAttribute("user", user);model.addAttribute("jifenGroupList", jifenGroupService.find(null));return "jsp/admin/user/set_vip";}/*** 设置用户vip等级表单提交* @param userId* @param jifen* @return*/@RequestMapping(value="set_vip.do",method=RequestMethod.POST)public String setVip(Integer userId, String vipLevel){User user = new User();user.setId(userId);user = userService.findbyid(user);user.setVipLevel(vipLevel);userService.update(user);return "redirect:index.do";}
}
上传图片控制层:
/** 上传图片* */
@Controller
@RequestMapping("/upload")
public class UploadController {@ResponseBody@RequestMapping("uploadimg.do")public Map<String, String> findAllWhere(HttpServletRequest request) throws IOException {//0代表失败,1代表成功,2格式错误Map<String, String> map=new HashMap<String, String>();// 转型为MultipartHttpRequest try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List<MultipartFile> fileList = multipartRequest.getFiles("file"); for (MultipartFile mf : fileList) { if(!mf.isEmpty()){try { // 文件保存路径 String dirname=Tool.getyyyyMMdd();String filePath =PublicStatic.FILE_PATH+"image/"+dirname+"/"; File file = new File(filePath);if (!file.exists()) {file.mkdirs();}String filenamelast=getfilenamelast(mf.getOriginalFilename()).toUpperCase();if(!filenamelast.equals(".JPG")&&!filenamelast.equals(".GIF")&&!filenamelast.equals(".JPEG")&&!filenamelast.equals(".PNG")&&!filenamelast.equals(".SWF")){map.put("isok", "2");}else{filenamelast=Tool.getyyyyMMddHHmmssSSS()+Tool.getRandom()+filenamelast;map.put("isok", "1");map.put("path", dirname+"/"+filenamelast);// 转存文件 mf.transferTo(new File(filePath+filenamelast)); }} catch (Exception e) {map.put("isok", "0");e.printStackTrace();}} } } catch (Exception e) {e.printStackTrace(); } return map;}//获取文件名private String getfilenamelast(String filename){int start=filename.lastIndexOf(".");if(start!=-1){filename=filename.substring(start, filename.length());}return filename;}}
源码获取:俺的博客首页 "资源" 里下载!