基于javaweb的SpringBoot+MyBatis个人博客管理系统(java+springboot+ssm+thymeleaf+html+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

文章的发表,分类,评论,收搜索,后台管理的的文章新 增,分类新增,评论审核,标签管理,评论管理,分类管 理,博客管理,系统管理等等功能

170123212502

180123212502

190123212502

200123212502

210123212502

220123212502

240123212502

250123212502

260123212502

270123212502

280123212502

290123212502

300123212502

技术框架

Springboot SpringMVC MyBatis ThymeLeaf HTML JavaScript JQuery Ajax maven

基于javaweb的SpringBoot+MyBatis个人博客管理系统(java+springboot+ssm+thymeleaf+html+maven)

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
@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 Result
*/
@RequestMapping(value = "/categories/list", method = RequestMethod.GET)
@ResponseBody
public Result list(@RequestParam Map<String, 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 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 {
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
 * @param request
* @return java.lang.String
*/
@GetMapping("/tags")
public String tagPage(HttpServletRequest request) {
request.setAttribute("path", "tags");
return "admin/tag";
}

/**
* @param params
* @return Result
*/
@GetMapping("/tags/list")
@ResponseBody
public Result list(@RequestParam Map<String, Object> params) {
if (StringUtils.isEmpty(params.get("page")) || StringUtils.isEmpty(params.get("limit"))) {
return ResultGenerator.genFailResult("参数异常!");
}
PageQueryUtil pageUtil = new PageQueryUtil(params);
return ResultGenerator.genSuccessResult(tagService.getBlogTagPage(pageUtil));
}


/**
* @param tagName
* @return Result
*/
@PostMapping("/tags/save")
@ResponseBody
public Result save(@RequestParam("tagName") String tagName) {
if (StringUtils.isEmpty(tagName)) {
return ResultGenerator.genFailResult("参数异常!");
}
if (tagService.saveTag(tagName)) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult("标签名称重复");
}
}

@PostMapping("/tags/delete")
@ResponseBody
public Result delete(@RequestBody Integer[] ids) {
if (ids.length < 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
42
43
44
45
    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")
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
public class MyblogController {
// public static String theme = "default";
public static String theme = "amaze";
@Resource
private BlogService blogService;
@Resource
private TagService tagService;
@Resource
private CommentService commentService;
@Resource
private ConfigService configService;
@Resource
private CategoryService categoryService;

/**
* 首页
*
* @param request http请求
* @return java.lang.String
*/
@GetMapping({"/", "/index", "index.html"})
public String index(HttpServletRequest request) {
return this.page(request, 1);
}

/**
* 首页(带页码)
*
* @param request http请求
* @param pageNum 页码
* @return java.lang.String
*/
@GetMapping({"/page/{pageNum}"})
public String page(HttpServletRequest request, @PathVariable("pageNum") int pageNum) {
PageResult blogPageResult = blogService.getBlogsForIndexPage(pageNum);
if (blogPageResult == null) {
return "error/error_404";
}
request.setAttribute("blogPageResult", blogPageResult);
request.setAttribute("newBlogs", blogService.getBlogListForIndexPage(1));
request.setAttribute("hotBlogs", blogService.getBlogListForIndexPage(0));
request.setAttribute("hotTags", tagService.getBlogTagCountForIndex());
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
/**

*/
@Controller
@RequestMapping("/admin")
public class TagController {

@Resource
private TagService tagService;

/**
* @param request
* @return java.lang.String
*/
@GetMapping("/tags")
public String tagPage(HttpServletRequest request) {
request.setAttribute("path", "tags");
return "admin/tag";
}

/**
* @param params
* @return Result
*/
@GetMapping("/tags/list")
@ResponseBody
public Result list(@RequestParam Map<String, Object> params) {
if (StringUtils.isEmpty(params.get("page")) || StringUtils.isEmpty(params.get("limit"))) {
return ResultGenerator.genFailResult("参数异常!");
}
PageQueryUtil pageUtil = new PageQueryUtil(params);
return ResultGenerator.genSuccessResult(tagService.getBlogTagPage(pageUtil));
}


/**
* @param tagName
* @return Result
*/
@PostMapping("/tags/save")
@ResponseBody
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
51
52
53
54
 */
@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,


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