如何使用Java实现个人博客系统
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关如何使用Java实现个人博客系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运行环境: jdk8+tomcat8.5+mysql5.7
千家信息网最后更新 2025年11月07日如何使用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安全错误
数据库的锁怎样保障安全
用手机玩mc服务器
怎样看一个软件的数据库
晋享团购互联网科技招聘文员
数据库中外键使用
双轨制直销系统软件开发
深圳物联网软件开发机构
app软件开发解决方案工具
黑魂3下载无法连接到内容服务器
2021mysql数据库教程
济南博赛网络技术学院电话号码
存储管理服务器故障
安徽通信软件开发品质保障
服务器组策略管理命令
获取服务器
软件开发为主的公司名字
企业微信根服务器
网络技术的发展使人们
数据库安全防护魔力象限
服务器 安全 360
手机无法登录网络服务器
软件开发服务都包括什么科目
pve服务器能去对方城市吗
二手服务器怎么选择
腾讯云香港服务器价格最新
设有关系数据库中一个表s
南昌软件开发公司报价
java软件开发属于什么
网络技术专业考研还是工作好
手机基岩版服务器推荐1.16
宁波网络技术招聘