网站开发技术是什么,搜索引擎整合营销,海淀区seo搜索优化,安吉做网站基于javaweb的清新论坛系统(javassmmysqltomcat)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计#xff0c;大作业#xff0c;毕业设计#xff0c;项目练习#xff0c;学习演示等
功能说明 基于javawe…基于javaweb的清新论坛系统(javassmmysqltomcat)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计大作业毕业设计项目练习学习演示等
功能说明 基于javaweb的网上论坛在线论坛系统bbs(javaSSMmysqlmaventomcat)
一、项目简述
功能本系统分用户前台和管理员后台。 用户前台主要功能有 用户注册 用户登录 浏览帖子 回复帖子 修改个人资料 管理员后台的功能有 管理论坛版块 用户管理 回复管理
二、项目运行
环境配置 Jdk1.8 Tomcat8.5 mysql Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术 JSP Spring SpringMVC MyBatis html css JavaScript JQuery Ajax layui maven等等。
处理管理员界面请求
/**
处理管理员界面请求
*/
Controller
RequestMapping(“/admin”)
public class AdminController {
Resource
private AdminUserService adminUserService;
Resource
private BlogService blogService;
Resource
private CategoryService categoryService;
Resource
private TagService tagService;
Resource
private CommentService commentService;
/** 处理登录请求 return java.lang.String
*/
GetMapping({“/login”})
public String login() {
return “admin/login”;
/** 主页 param request http请求 return java.lang.String
*/
GetMapping({“”, “/”, “/index”, “/index.html”})
public String index(HttpServletRequest request) {
request.setAttribute(“path”, “index”);
request.setAttribute(“categoryCount”, categoryService.getTotalCategories());
request.setAttribute(“blogCount”, blogService.getTotalBlogs());
request.setAttribute(“tagCount”, tagService.getTotalTags());
request.setAttribute(“commentCount”, commentService.getTotalComments());
return “admin/index”;
/** 登录界面 param userName 用户名 param password 密码 param verifyCode 验证码 param session session return java.lang.String
*/
PostMapping(value “/login”)
public String login(RequestParam(“userName”) String userName,
RequestParam(“password”) String password,
RequestParam(“verifyCode”) String verifyCode,
HttpSession session) {
if (StringUtils.isEmpty(verifyCode)) {
session.setAttribute(“errorMsg”, “验证码不能为空”);
return “admin/login”;
if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {
session.setAttribute(“errorMsg”, “用户名或密码不能为空”);
return “admin/login”;
String kaptchaCode session.getAttribute(“verifyCode”) “”;
if (StringUtils.isEmpty(kaptchaCode) || !verifyCode.equals(kaptchaCode)) {
session.setAttribute(“errorMsg”, “验证码错误”);
return “admin/login”;
AdminUser adminUser adminUserService.login(userName, password);
if (adminUser ! null) {
session.setAttribute(“loginUser”, adminUser.getNickName());
session.setAttribute(“loginUserId”, adminUser.getAdminUserId());
//session过期时间设置为7200秒 即两小时
//session.setMaxInactiveInterval(60 * 60 * 2);
return “redirect:/admin/index”;
} else {
session.setAttribute(“errorMsg”, “登陆失败”);
return “admin/login”;
/** 修改个人信息 param request http请求 return java.lang.String
*/
GetMapping(“/profile”)
public String profile(HttpServletRequest request) {
Integer loginUserId (int) request.getSession().getAttribute(“loginUserId”);
AdminUser adminUser adminUserService.getUserDetailById(loginUserId);
if (adminUser null) {
return “admin/login”;
request.setAttribute(“path”, “profile”);
request.setAttribute(“loginUserName”, adminUser.getLoginUserName());
request.setAttribute(“nickName”, adminUser.getNickName());
return “admin/profile”;
/** 修改密码 param request http请求 param originalPassword 原始密码 param newPassword 新密码 return java.lang.String
*/
PostMapping(“/profile/password”)
ResponseBody
public String passwordUpdate(HttpServletRequest request, RequestParam(“originalPassword”) String originalPassword,
RequestParam(“newPassword”) String newPassword) {
if (StringUtils.isEmpty(originalPassword) || StringUtils.isEmpty(newPassword)) {
return “参数不能为空”;
Integer loginUserId (int) request.getSession().getAttribute(“loginUserId”);
if (adminUserService.updatePassword(loginUserId, originalPassword, newPassword)) {
//修改成功后清空session中的数据前端控制跳转至登录页
request.getSession().removeAttribute(“loginUserId”);
request.getSession().removeAttribute(“loginUser”);
request.getSession().removeAttribute(“errorMsg”);
return “success”;
} else {
return “修改失败”;
/** 修改登录名昵称 param request http请求 param loginUserName 登录名 param nickName 昵称 return java.lang.String
*/
PostMapping(“/profile/name”)
ResponseBody
public String nameUpdate(HttpServletRequest request, RequestParam(“loginUserName”) String loginUserName,
RequestParam(“nickName”) String nickName) {
if (StringUtils.isEmpty(loginUserName) || StringUtils.isEmpty(nickName)) {
return “参数不能为空”;
Integer loginUserId (int) request.getSession().getAttribute(“loginUserId”);
if (adminUserService.updateName(loginUserId, loginUserName, nickName)) {
return “success”;
} else {
return “修改失败”;
/** 管理员退出 param request http请求 return java.lang.String
*/
GetMapping(“/logout”)
public String logout(HttpServletRequest request) {
request.getSession().removeAttribute(“loginUserId”);
request.getSession().removeAttribute(“loginUser”);
request.getSession().removeAttribute(“errorMsg”);
return “admin/login”;
管理员控制层
/**
管理员控制层
*/
Controller
RequestMapping(“/admin”)
public class CategoryController {
Resource
private CategoryService categoryService;
/** param request return java.lang.String
*/
GetMapping(“/categories”)
public String categoryPage(HttpServletRequest request) {
request.setAttribute(“path”, “categories”);
return “admin/category”;
/** param params return com.hbu.myblog.util.Result
*/
RequestMapping(value “/categories/list”, method RequestMethod.GET)
ResponseBody
public Result list(RequestParam MapString, Object params) {
if (StringUtils.isEmpty(params.get(“page”)) || StringUtils.isEmpty(params.get(“limit”))) {
return ResultGenerator.genFailResult(“参数异常”);
PageQueryUtil pageUtil new PageQueryUtil(params);
return ResultGenerator.genSuccessResult(categoryService.getBlogCategoryPage(pageUtil));
/** param categoryName param categoryIcon return com.hbu.myblog.util.Result
*/
RequestMapping(value “/categories/save”, method RequestMethod.POST)
ResponseBody
public Result save(RequestParam(“categoryName”) String categoryName,
RequestParam(“categoryIcon”) String categoryIcon) {
if (StringUtils.isEmpty(categoryName)) {
return ResultGenerator.genFailResult(“请输入分类名称”);
if (StringUtils.isEmpty(categoryIcon)) {
return ResultGenerator.genFailResult(“请选择分类图标”);
if (categoryService.saveCategory(categoryName, categoryIcon)) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(“分类名称重复”);
/** param categoryId param categoryName param categoryIcon return com.hbu.myblog.util.Result
*/
RequestMapping(value “/categories/update”, method RequestMethod.POST)
ResponseBody
public Result update(RequestParam(“categoryId”) Integer categoryId,
RequestParam(“categoryName”) String categoryName,
RequestParam(“categoryIcon”) String categoryIcon) {
if (StringUtils.isEmpty(categoryName)) {
return ResultGenerator.genFailResult(“请输入分类名称”);
if (StringUtils.isEmpty(categoryIcon)) {
return ResultGenerator.genFailResult(“请选择分类图标”);
if (categoryService.updateCategory(categoryId, categoryName, categoryIcon)) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(“分类名称重复”);
/** param ids return com.hbu.myblog.util.Result
*/
RequestMapping(value “/categories/delete”, method RequestMethod.POST)
ResponseBody
public Result delete(RequestBody Integer[] ids) {
if (ids.length 1) {
return ResultGenerator.genFailResult(“参数异常”);
if (categoryService.deleteBatch(ids)) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(“删除失败”);
博客内容控制层
/**
author 博客
*/
Controller
RequestMapping(“/admin”)
public class BlogController {
Resource
private BlogService blogService;
Resource
private CategoryService categoryService;
/** 博客列表 param params 参数 return com.hbu.myblog.util.Result
*/
GetMapping(“/blogs/list”)
ResponseBody
public Result list(RequestParam MapString, Object params) {
if (StringUtils.isEmpty(params.get(“page”)) || StringUtils.isEmpty(params.get(“limit”))) {
return ResultGenerator.genFailResult(“参数异常”);
PageQueryUtil pageUtil new PageQueryUtil(params);
return ResultGenerator.genSuccessResult(blogService.getBlogsPage(pageUtil));
/** param request http请求 return java.lang.String
*/
GetMapping(“/blogs”)
public String list(HttpServletRequest request) {
request.setAttribute(“path”, “blogs”);
return “admin/blog”;
/** param request http请求 return java.lang.String
*/
GetMapping(“/blogs/edit”)
public String edit(HttpServletRequest request) {
request.setAttribute(“path”, “edit”);
request.setAttribute(“categories”, categoryService.getAllCategories());
return “admin/edit”;
/** param request http请求 param blogId 博客id return java.lang.String
*/
GetMapping(“/blogs/edit/{blogId}”)
public String edit(HttpServletRequest request, PathVariable(“blogId”) Long blogId) {
request.setAttribute(“path”, “edit”);
Blog blog blogService.getBlogById(blogId);
if (blog null) {
return “error/error_400”;
request.setAttribute(“blog”, blog);
request.setAttribute(“categories”, categoryService.getAllCategories());
return “admin/edit”;
/** 添加文章 param blogTitle 文章标题 param blogSummary 摘要 param blogCategoryId 类别 param blogTags 标签 param blogContent 内容 param blogStatus 草稿发布 param enableComment 可否评论 return com.hbu.myblog.util.Result
*/
PostMapping(“/blogs/save”)
ResponseBody
public Result save(RequestParam(“blogTitle”) String blogTitle,
RequestParam(name “blogSummary”, required false) String blogSummary,
RequestParam(“blogCategoryId”) Integer blogCategoryId,
RequestParam(“blogTags”) String blogTags,
RequestParam(“blogContent”) String blogContent,
RequestParam(“blogStatus”) Byte blogStatus,
RequestParam(“enableComment”) Byte enableComment) {
if (StringUtils.isEmpty(blogTitle)) {
return ResultGenerator.genFailResult(“请输入文章标题”);
if (blogTitle.trim().length() 150) {
return ResultGenerator.genFailResult(“标题过长”);
if (StringUtils.isEmpty(blogTags)) {
return ResultGenerator.genFailResult(“请输入文章标签”);
if (blogTags.trim().length() 150) {
return ResultGenerator.genFailResult(“标签过长”);
if (blogSummary.trim().length() 375) {
return ResultGenerator.genFailResult(“摘要过长”);
if (StringUtils.isEmpty(blogContent)) {
return ResultGenerator.genFailResult(“请输入文章内容”);
if (blogTags.trim().length() 100000) {
return ResultGenerator.genFailResult(“文章内容过长”);
Blog blog new Blog();
blog.setBlogTitle(blogTitle);
blog.setBlogSummary(blogSummary);
blog.setBlogCategoryId(blogCategoryId);
blog.setBlogTags(blogTags);
blog.setBlogContent(blogContent);
blog.setBlogStatus(blogStatus);
blog.setEnableComment(enableComment);
String saveBlogResult blogService.saveBlog(blog);
if (“success”.equals(saveBlogResult)) {
return ResultGenerator.genSuccessResult(“添加成功”);
} else {
return ResultGenerator.genFailResult(saveBlogResult);
/** 修改文章 param blogId 文章ID param blogTitle 文章标题 param blogSummary 摘要 param blogCategoryId 类别 param blogTags 标签 param blogContent 内容 param blogStatus 草稿发布 param enableComment 可否评论 return com.hbu.myblog.util.Result
*/
PostMapping(“/blogs/update”)
ResponseBody
public Result update(RequestParam(“blogId”) Long blogId,
RequestParam(“blogTitle”) String blogTitle,
RequestParam(name “blogSummary”, required false) String blogSummary,
RequestParam(“blogCategoryId”) Integer blogCategoryId,
RequestParam(“blogTags”) String blogTags,
RequestParam(“blogContent”) String blogContent,
RequestParam(“blogStatus”) Byte blogStatus,
RequestParam(“enableComment”) Byte enableComment) {
if (StringUtils.isEmpty(blogTitle)) {
return ResultGenerator.genFailResult(“请输入文章标题”);
if (blogTitle.trim().length() 150) {
return ResultGenerator.genFailResult(“标题过长”);
if (StringUtils.isEmpty(blogTags)) {
return ResultGenerator.genFailResult(“请输入文章标签”);
if (blogTags.trim().length() 150) {
return ResultGenerator.genFailResult(“标签过长”);
if (blogSummary.trim().length() 375) {
return ResultGenerator.genFailResult(“摘要过长”);
if (StringUtils.isEmpty(blogContent)) {
return ResultGenerator.genFailResult(“请输入文章内容”);
if (blogTags.trim().length() 100000) {
return ResultGenerator.genFailResult(“文章内容过长”);
Blog blog new Blog();
blog.setBlogId(blogId);
blog.setBlogTitle(blogTitle);
blog.setBlogSummary(blogSummary);
blog.setBlogCategoryId(blogCategoryId);
blog.setBlogTags(blogTags);
blog.setBlogContent(blogContent);
blog.setBlogStatus(blogStatus);
blog.setEnableComment(enableComment);
String updateBlogResult blogService.updateBlog(blog);
if (“success”.equals(updateBlogResult)) {
return ResultGenerator.genSuccessResult(“修改成功”);
} else {
return ResultGenerator.genFailResult(updateBlogResult);
/** 根据id的之删除文章 param ids 要删除文章id列表 return com.hbu.myblog.util.Result
*/
PostMapping(“/blogs/delete”)
ResponseBody
public Result delete(RequestBody Integer[] ids) {
if (ids.length 1) {
return ResultGenerator.genFailResult(“参数异常”);
if (blogService.deleteBatch(ids)) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(“删除失败”);