如何使用Java实现个人博客系统
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关如何使用Java实现个人博客系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运行环境: jdk8+tomcat8.5+mysql5.7
千家信息网最后更新 2026年11月01日如何使用Java实现个人博客系统
这篇文章将为大家详细讲解有关如何使用Java实现个人博客系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
运行环境: jdk8+tomcat8.5+mysql5.7+IntelliJ IDEA+maven
项目技术: springboot+mybatis+redis+vue+element ui


博客管理控制层:
/** * @author yy */@Controllerpublic 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()); request.setAttribute("pageName", "首页"); request.setAttribute("configurations", configService.getAllConfigs()); return "blog/" + theme + "/index"; } /** * Categories页面(包括分类数据和标签数据) * * @param request http请求 * @return java.lang.String */ @GetMapping({"/categories"}) public String categories(HttpServletRequest request) { request.setAttribute("hotTags", tagService.getBlogTagCountForIndex()); request.setAttribute("categories", categoryService.getAllCategories()); request.setAttribute("pageName", "分类页面"); request.setAttribute("configurations", configService.getAllConfigs()); return "blog/" + theme + "/category"; } /** * 详情页 * * @param request http请求 * @param blogId 博客id * @param commentPage 评论页 * @return java.lang.String */ @GetMapping({"/blog/{blogId}", "/article/{blogId}"}) public String detail(HttpServletRequest request, @PathVariable("blogId") Long blogId, @RequestParam(value = "commentPage", required = false, defaultValue = "1") Integer commentPage) { BlogDetailVO blogDetailVO = blogService.getBlogDetail(blogId); if (blogDetailVO != null) { request.setAttribute("blogDetailVO", blogDetailVO); request.setAttribute("commentPageResult", commentService.getCommentPageByBlogIdAndPageNum(blogId, commentPage)); } request.setAttribute("pageName", "详情"); request.setAttribute("configurations", configService.getAllConfigs()); return "blog/" + theme + "/detail"; } /** * 标签列表页 * * @param request http请求 * @param tagName 标签名称 * @return java.lang.String */ @GetMapping({"/tag/{tagName}"}) public String tag(HttpServletRequest request, @PathVariable("tagName") String tagName) { return tag(request, tagName, 1); } /** * 标签列表页(带页码) * * @param request http请求 * @param tagName 标签名称 * @param page 页码 * @return java.lang.String */ @GetMapping({"/tag/{tagName}/{page}"}) public String tag(HttpServletRequest request, @PathVariable("tagName") String tagName, @PathVariable("page") Integer page) { PageResult blogPageResult = blogService.getBlogsPageByTag(tagName, page); request.setAttribute("blogPageResult", blogPageResult); request.setAttribute("pageName", "标签"); request.setAttribute("pageUrl", "tag"); request.setAttribute("keyword", tagName); request.setAttribute("newBlogs", blogService.getBlogListForIndexPage(1)); request.setAttribute("hotBlogs", blogService.getBlogListForIndexPage(0)); request.setAttribute("hotTags", tagService.getBlogTagCountForIndex()); request.setAttribute("configurations", configService.getAllConfigs()); return "blog/" + theme + "/list"; } /** * 分类列表页 * * @param request http请求 * @param categoryName 类别名称 * @return java.lang.String */ @GetMapping({"/category/{categoryName}"}) public String category(HttpServletRequest request, @PathVariable("categoryName") String categoryName) { return category(request, categoryName, 1); } /** * 分类列表页(带页码) * * @param request http请求 * @param categoryName 类别名称 * @param page 页码 * @return java.lang.String */ @GetMapping({"/category/{categoryName}/{page}"}) public String category(HttpServletRequest request, @PathVariable("categoryName") String categoryName, @PathVariable("page") Integer page) { PageResult blogPageResult = blogService.getBlogsPageByCategory(categoryName, page); request.setAttribute("blogPageResult", blogPageResult); request.setAttribute("pageName", "分类"); request.setAttribute("pageUrl", "category"); request.setAttribute("keyword", categoryName); request.setAttribute("newBlogs", blogService.getBlogListForIndexPage(1)); request.setAttribute("hotBlogs", blogService.getBlogListForIndexPage(0)); request.setAttribute("hotTags", tagService.getBlogTagCountForIndex()); request.setAttribute("configurations", configService.getAllConfigs()); return "blog/" + theme + "/list"; } /** * 搜索列表页 * * @param request http请求 * @param keyword 关键词 * @return java.lang.String */ @GetMapping({"/search/{keyword}"}) public String search(HttpServletRequest request, @PathVariable("keyword") String keyword) { return search(request, keyword, 1); } /** * 搜索列表页(带页码) * * @param request http请求 * @param keyword 关键词 * @param page 页码 * @return java.lang.String */ @GetMapping({"/search/{keyword}/{page}"}) public String search(HttpServletRequest request, @PathVariable("keyword") String keyword, @PathVariable("page") Integer page) { PageResult blogPageResult = blogService.getBlogsPageBySearch(keyword, page); request.setAttribute("blogPageResult", blogPageResult); request.setAttribute("pageName", "搜索"); request.setAttribute("pageUrl", "search"); request.setAttribute("keyword", keyword); request.setAttribute("newBlogs", blogService.getBlogListForIndexPage(1)); request.setAttribute("hotBlogs", blogService.getBlogListForIndexPage(0)); request.setAttribute("hotTags", tagService.getBlogTagCountForIndex()); request.setAttribute("configurations", configService.getAllConfigs()); return "blog/" + theme + "/list"; } /** * 评论留言 * * @param request http请求 * @param session session * @param blogId 博客id * @param verifyCode 验证码 * @param commentator 评论者昵称 * @param email 邮箱 * @param websiteUrl 留言者的网站 * @param commentBody 评论内容 * @return com.hbu.myblog.util.Result */ @PostMapping(value = "/blog/comment") @ResponseBody public Result comment(HttpServletRequest request, HttpSession session, @RequestParam Long blogId, @RequestParam String verifyCode, @RequestParam String commentator, @RequestParam String email, @RequestParam String websiteUrl, @RequestParam String commentBody) { if (StringUtils.isEmpty(verifyCode)) { return ResultGenerator.genFailResult("验证码不能为空"); } String kaptchaCode = session.getAttribute("verifyCode") + ""; if (StringUtils.isEmpty(kaptchaCode)) { return ResultGenerator.genFailResult("非法请求"); } if (!verifyCode.equals(kaptchaCode)) { return ResultGenerator.genFailResult("验证码错误"); } String ref = request.getHeader("Referer"); if (StringUtils.isEmpty(ref)) { return ResultGenerator.genFailResult("非法请求"); } if (null == blogId || blogId < 0) { return ResultGenerator.genFailResult("非法请求"); } if (StringUtils.isEmpty(commentator)) { return ResultGenerator.genFailResult("请输入称呼"); } if (StringUtils.isEmpty(email)) { return ResultGenerator.genFailResult("请输入邮箱地址"); } if (!PatternUtil.isEmail(email)) { return ResultGenerator.genFailResult("请输入正确的邮箱地址"); } if (StringUtils.isEmpty(commentBody)) { return ResultGenerator.genFailResult("请输入评论内容"); } if (commentBody.trim().length() > 200) { return ResultGenerator.genFailResult("评论内容过长"); } BlogComment comment = new BlogComment(); comment.setBlogId(blogId); comment.setCommentator(MyBlogUtils.cleanString(commentator)); comment.setEmail(email); if (PatternUtil.isURL(websiteUrl)) { comment.setWebsiteUrl(websiteUrl); } comment.setCommentBody(MyBlogUtils.cleanString(commentBody)); return ResultGenerator.genSuccessResult(commentService.addComment(comment)); }}管理员控制层:
/** * @author yy */@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 Map 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 yy */@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"; }}关于"如何使用Java实现个人博客系统"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
分类
名称
页码
标签
验证
博客
登录
管理
评论
参数
密码
管理员
个人
内容
数据
昵称
界面
篇文章
首页
处理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海睿民互联网科技有限公司
苏州找大状互联网科技有限公司
金融科技创新监管互联网金融
嘟嘟瓜互联网科技
上海喔噻互联网科技
腾讯科技 互联网女皇
广州凡科互联网科技
互联网科技logo设计
米客互联网科技
互联网 视角下的科技创新
互联网科技革命什么开始
消费医药和互联网科技
中国互联网公司排名锤子科技
长沙茂晟互联网科技有限公司
恒生互联网科技业指数调整周期
35岁以上互联网科技行业
郑州欣桑互联网科技有限公司
普陀区互联网教育科技管理办法
互联网科技博主张洲
杭州科技互联网公司有哪些
互联网科技股
湖南永感互联网科技有限公司
广州宏创互联网科技
互联网金融 科技创新
长亮科技 互联网金融
深圳期待互联网科技
撒么互联网科技公司
健康食品互联网创新科技园项目
好易买互联网科技
亚光科技低轨卫星互联网