Java基于SSM的个人博客系统(源码 包含前后台)
@
系统简介
技术点:Java、JSP、SSM框架,实现了个人博客系统
用户角色分为:普通用户、管理员、系统管理员
功能:发博客、博客分类、博客删除、评论、博客管理、日志等
看完本博客,你可以得到:
1> 学会SSM框架,相当于一个学习例子,可以自己拿来改
2> 拥有自己的私人博客系统
系统运行截图
登录界面:
博客首页:
博客列表:
核心代码
一、业务逻辑层:
博客用户逻辑类:
Blogger
/* 1: */ package com.blog.service.impl;
/* 2: */
/* 3: */ import com.blog.dao.BloggerDao;
/* 4: */ import com.blog.entity.Blogger;
/* 5: */ import com.blog.service.BloggerService;
/* 6: */ import javax.annotation.Resource;
/* 7: */ import org.springframework.stereotype.Service;
/* 8: */
/* 9: */ @Service("bloggerService")
/* 10: */ public class BloggerServiceImpl
/* 11: */ implements BloggerService
/* 12: */ {
/* 13: */ @Resource
/* 14: */ private BloggerDao bloggerDao;
/* 15: */
/* 16: */ public Blogger find()
/* 17: */ {
/* 18:23 */ return this.bloggerDao.find();
/* 19: */ }
/* 20: */
/* 21: */ public Blogger getByUserName(String userName)
/* 22: */ {
/* 23:27 */ return this.bloggerDao.getByUserName(userName);
/* 24: */ }
/* 25: */
/* 26: */ public Integer update(Blogger blogger)
/* 27: */ {
/* 28:31 */ return this.bloggerDao.update(blogger);
/* 29: */ }
/* 30: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.service.impl.BloggerServiceImpl
* JD-Core Version: 0.7.0.1
*/
博客类型逻辑类:
BlogType
/* 1: */ package com.blog.service.impl;
/* 2: */
/* 3: */ import com.blog.dao.BlogTypeDao;
/* 4: */ import com.blog.entity.BlogType;
/* 5: */ import com.blog.service.BlogTypeService;
/* 6: */ import java.util.List;
/* 7: */ import java.util.Map;
/* 8: */ import javax.annotation.Resource;
/* 9: */ import org.springframework.stereotype.Service;
/* 10: */
/* 11: */ @Service("blogTypeService")
/* 12: */ public class BlogTypeServiceImpl
/* 13: */ implements BlogTypeService
/* 14: */ {
/* 15: */ @Resource
/* 16: */ private BlogTypeDao blogTypeDao;
/* 17: */
/* 18: */ public List<BlogType> countList()
/* 19: */ {
/* 20:26 */ return this.blogTypeDao.countList();
/* 21: */ }
/* 22: */
/* 23: */ public List<BlogType> list(Map<String, Object> map)
/* 24: */ {
/* 25:30 */ return this.blogTypeDao.list(map);
/* 26: */ }
/* 27: */
/* 28: */ public Long getTotal(Map<String, Object> map)
/* 29: */ {
/* 30:34 */ return this.blogTypeDao.getTotal(map);
/* 31: */ }
/* 32: */
/* 33: */ public Integer add(BlogType blogType)
/* 34: */ {
/* 35:38 */ return this.blogTypeDao.add(blogType);
/* 36: */ }
/* 37: */
/* 38: */ public Integer update(BlogType blogType)
/* 39: */ {
/* 40:42 */ return this.blogTypeDao.update(blogType);
/* 41: */ }
/* 42: */
/* 43: */ public Integer delete(Integer id)
/* 44: */ {
/* 45:46 */ return this.blogTypeDao.delete(id);
/* 46: */ }
/* 47: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.service.impl.BlogTypeServiceImpl
* JD-Core Version: 0.7.0.1
*/
评论逻辑类:
Comment
/* 1: */ package com.blog.service.impl;
/* 2: */
/* 3: */ import com.blog.dao.CommentDao;
/* 4: */ import com.blog.entity.Comment;
/* 5: */ import com.blog.service.CommentService;
/* 6: */ import java.util.List;
/* 7: */ import java.util.Map;
/* 8: */ import javax.annotation.Resource;
/* 9: */ import org.springframework.stereotype.Service;
/* 10: */
/* 11: */ @Service("commentService")
/* 12: */ public class CommentServiceImpl
/* 13: */ implements CommentService
/* 14: */ {
/* 15: */ @Resource
/* 16: */ private CommentDao commentDao;
/* 17: */
/* 18: */ public int add(Comment comment)
/* 19: */ {
/* 20:26 */ return this.commentDao.add(comment);
/* 21: */ }
/* 22: */
/* 23: */ public List<Comment> list(Map<String, Object> map)
/* 24: */ {
/* 25:30 */ return this.commentDao.list(map);
/* 26: */ }
/* 27: */
/* 28: */ public Long getTotal(Map<String, Object> map)
/* 29: */ {
/* 30:34 */ return this.commentDao.getTotal(map);
/* 31: */ }
/* 32: */
/* 33: */ public Integer delete(Integer id)
/* 34: */ {
/* 35:38 */ return this.commentDao.delete(id);
/* 36: */ }
/* 37: */
/* 38: */ public int update(Comment comment)
/* 39: */ {
/* 40:42 */ return this.commentDao.update(comment);
/* 41: */ }
/* 42: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.service.impl.CommentServiceImpl
* JD-Core Version: 0.7.0.1
*/
二、控制层:
博客控制层
BlogController
package com.blog.controller;
import com.blog.entity.Blog;
import com.blog.lucene.BlogIndex;
import com.blog.service.BlogService;
import com.blog.service.CommentService;
import com.blog.util.StringUtil;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping({"/blog"})
public class BlogController
{
@Resource
private BlogService blogService;
@Resource
private CommentService commentService;
private BlogIndex blogIndex = new BlogIndex();
@RequestMapping({"/articles/{id}"})
public ModelAndView details(@PathVariable("id") Integer id, HttpServletRequest request)
throws Exception
{
ModelAndView mav = new ModelAndView();
Blog blog = this.blogService.findById(id);
String keyWords = blog.getKeyWord();
if (StringUtil.isNotEmpty(keyWords))
{
String[] arr = keyWords.split(" ");
mav.addObject("keyWords", StringUtil.filterWhite(Arrays.asList(arr)));
}
else
{
mav.addObject("keyWords", null);
}
mav.addObject("blog", blog);
blog.setClickHit(Integer.valueOf(blog.getClickHit().intValue() + 1));
this.blogService.update(blog);
Map<String, Object> map = new HashMap();
map.put("blogId", blog.getId());
map.put("state", Integer.valueOf(1));
mav.addObject("commentList", this.commentService.list(map));
mav.addObject("pageCode", genUpAndDownPageCode(this.blogService.getLastBlog(id), this.blogService.getNextBlog(id), request.getServletContext().getContextPath()));
mav.addObject("mainPage", "foreground/blog/view.jsp");
mav.addObject("pageTitle", blog.getTitle() + "_Java开源博客系统");
mav.setViewName("mainTemp");
return mav;
}
@RequestMapping({"/q"})
public ModelAndView search(@RequestParam(value="q", required=false) String q, @RequestParam(value="page", required=false) String page, HttpServletRequest request)
throws Exception
{
if (StringUtil.isEmpty(page)) {
page = "1";
}
ModelAndView mav = new ModelAndView();
mav.addObject("mainPage", "foreground/blog/result.jsp");
List<Blog> blogList = this.blogIndex.searchBlog(q.trim());
Integer toIndex = Integer.valueOf(blogList.size() >= Integer.parseInt(page) * 10 ? Integer.parseInt(page) * 10 : blogList.size());
mav.addObject("blogList", blogList.subList((Integer.parseInt(page) - 1) * 10, toIndex.intValue()));
mav.addObject("pageCode", genUpAndDownPageCode(Integer.valueOf(Integer.parseInt(page)), Integer.valueOf(blogList.size()), q, Integer.valueOf(10), request.getServletContext().getContextPath()));
mav.addObject("q", q);
mav.addObject("resultTotal", Integer.valueOf(blogList.size()));
mav.addObject("pageTitle", "搜索关键字'" + q + "'结果页面_Java开源博客系统");
mav.setViewName("mainTemp");
return mav;
}
private String genUpAndDownPageCode(Blog lastBlog, Blog nextBlog, String projectContext)
{
StringBuffer pageCode = new StringBuffer();
if ((lastBlog == null) || (lastBlog.getId() == null)) {
pageCode.append("<p>上一篇:没有了</p>");
} else {
pageCode.append("<p>上一篇:<a href='" + projectContext + "/blog/articles/" + lastBlog.getId() + ".html'>" + lastBlog.getTitle() + "</a></p>");
}
if ((nextBlog == null) || (nextBlog.getId() == null)) {
pageCode.append("<p>下一篇:没有了</p>");
} else {
pageCode.append("<p>下一篇:<a href='" + projectContext + "/blog/articles/" + nextBlog.getId() + ".html'>" + nextBlog.getTitle() + "</a></p>");
}
return pageCode.toString();
}
private String genUpAndDownPageCode(Integer page, Integer totalNum, String q, Integer pageSize, String projectContext)
{
long totalPage = totalNum.intValue() % pageSize.intValue() == 0 ? totalNum.intValue() / pageSize.intValue() : totalNum.intValue() / pageSize.intValue() + 1;
StringBuffer pageCode = new StringBuffer();
if (totalPage == 0L) {
return "";
}
pageCode.append("<nav>");
pageCode.append("<ul class='pager' >");
if (page.intValue() > 1) {
pageCode.append("<li><a href='" + projectContext + "/blog/q.html?page=" + (page.intValue() - 1) + "&q=" + q + "'>上一页</a></li>");
} else {
pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");
}
if (page.intValue() < totalPage) {
pageCode.append("<li><a href='" + projectContext + "/blog/q.html?page=" + (page.intValue() + 1) + "&q=" + q + "'>下一页</a></li>");
} else {
pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");
}
pageCode.append("</ul>");
pageCode.append("</nav>");
return pageCode.toString();
}
}
博客用户控制层
BloggerController
/* 1: */ package com.blog.controller;
/* 2: */
/* 3: */ import com.blog.entity.Blogger;
/* 4: */ import com.blog.service.BloggerService;
/* 5: */ import com.blog.util.CryptographyUtil;
/* 6: */ import javax.annotation.Resource;
/* 7: */ import javax.servlet.http.HttpServletRequest;
/* 8: */ import org.apache.shiro.SecurityUtils;
/* 9: */ import org.apache.shiro.authc.UsernamePasswordToken;
/* 10: */ import org.apache.shiro.subject.Subject;
/* 11: */ import org.springframework.stereotype.Controller;
/* 12: */ import org.springframework.web.bind.annotation.RequestMapping;
/* 13: */ import org.springframework.web.servlet.ModelAndView;
/* 14: */
/* 15: */ @Controller
/* 16: */ @RequestMapping({"/blogger"})
/* 17: */ public class BloggerController
/* 18: */ {
/* 19: */ @Resource
/* 20: */ private BloggerService bloggerService;
/* 21: */
/* 22: */ @RequestMapping({"/login"})
/* 23: */ public String login(Blogger blogger, HttpServletRequest request)
/* 24: */ {
/* 25:37 */ Subject subject = SecurityUtils.getSubject();
/* 26:38 */ UsernamePasswordToken token = new UsernamePasswordToken(blogger.getUserName(), CryptographyUtil.md5(blogger.getPassword(), "java1234"));
/* 27: */ try
/* 28: */ {
/* 29:40 */ subject.login(token);
/* 30:41 */ return "redirect:/admin/main.jsp";
/* 31: */ }
/* 32: */ catch (Exception e)
/* 33: */ {
/* 34:43 */ e.printStackTrace();
/* 35:44 */ request.setAttribute("blogger", blogger);
/* 36:45 */ request.setAttribute("errorInfo", "用户名或密码错误!");
/* 37: */ }
/* 38:46 */ return "login";
/* 39: */ }
/* 40: */
/* 41: */ @RequestMapping({"/aboutMe"})
/* 42: */ public ModelAndView aboutMe()
/* 43: */ throws Exception
/* 44: */ {
/* 45:57 */ ModelAndView mav = new ModelAndView();
/* 46:58 */ mav.addObject("blogger", this.bloggerService.find());
/* 47:59 */ mav.addObject("mainPage", "foreground/blogger/info.jsp");
/* 48:60 */ mav.addObject("pageTitle", "关于博主_Java开源博客系统");
/* 49:61 */ mav.setViewName("mainTemp");
/* 50:62 */ return mav;
/* 51: */ }
/* 52: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.controller.BloggerController
* JD-Core Version: 0.7.0.1
*/
评论控制层
CommentController:
/* 1: */ package com.blog.controller;
/* 2: */
/* 3: */ import com.blog.entity.Blog;
/* 4: */ import com.blog.entity.Comment;
/* 5: */ import com.blog.service.BlogService;
/* 6: */ import com.blog.service.CommentService;
/* 7: */ import com.blog.util.ResponseUtil;
/* 8: */ import javax.annotation.Resource;
/* 9: */ import javax.servlet.http.HttpServletRequest;
/* 10: */ import javax.servlet.http.HttpServletResponse;
/* 11: */ import javax.servlet.http.HttpSession;
/* 12: */ import net.sf.json.JSONObject;
/* 13: */ import org.springframework.stereotype.Controller;
/* 14: */ import org.springframework.web.bind.annotation.RequestMapping;
/* 15: */ import org.springframework.web.bind.annotation.RequestParam;
/* 16: */
/* 17: */ @Controller
/* 18: */ @RequestMapping({"/comment"})
/* 19: */ public class CommentController
/* 20: */ {
/* 21: */ @Resource
/* 22: */ private CommentService commentService;
/* 23: */ @Resource
/* 24: */ private BlogService blogService;
/* 25: */
/* 26: */ @RequestMapping({"/save"})
/* 27: */ public String save(Comment comment, @RequestParam("imageCode") String imageCode, HttpServletRequest request, HttpServletResponse response, HttpSession session)
/* 28: */ throws Exception
/* 29: */ {
/* 30:45 */ String sRand = (String)session.getAttribute("sRand");
/* 31:46 */ JSONObject result = new JSONObject();
/* 32:47 */ int resultTotal = 0;
/* 33:48 */ if (!imageCode.equals(sRand))
/* 34: */ {
/* 35:49 */ result.put("success", Boolean.valueOf(false));
/* 36:50 */ result.put("errorInfo", "验证码填写错误!");
/* 37: */ }
/* 38: */ else
/* 39: */ {
/* 40:52 */ String userIp = request.getRemoteAddr();
/* 41:53 */ comment.setUserIp(userIp);
/* 42:54 */ if (comment.getId() == null)
/* 43: */ {
/* 44:55 */ resultTotal = this.commentService.add(comment);
/* 45: */
/* 46:57 */ Blog blog = this.blogService.findById(comment.getBlog().getId());
/* 47:58 */ blog.setReplyHit(Integer.valueOf(blog.getReplyHit().intValue() + 1));
/* 48:59 */ this.blogService.update(blog);
/* 49: */ }
/* 50:63 */ if (resultTotal > 0) {
/* 51:64 */ result.put("success", Boolean.valueOf(true));
/* 52: */ } else {
/* 53:66 */ result.put("success", Boolean.valueOf(false));
/* 54: */ }
/* 55: */ }
/* 56:69 */ ResponseUtil.write(response, result);
/* 57:70 */ return null;
/* 58: */ }
/* 59: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.controller.CommentController
* JD-Core Version: 0.7.0.1
*/
博客管理员控制层:
BlogAdminController:
/* 1: */ package com.blog.controller.admin;
/* 2: */
/* 3: */ import com.blog.entity.Blog;
/* 4: */ import com.blog.entity.PageBean;
/* 5: */ import com.blog.lucene.BlogIndex;
/* 6: */ import com.blog.service.BlogService;
/* 7: */ import com.blog.util.ResponseUtil;
/* 8: */ import com.blog.util.StringUtil;
/* 9: */ import java.util.Date;
/* 10: */ import java.util.HashMap;
/* 11: */ import java.util.List;
/* 12: */ import java.util.Map;
/* 13: */ import javax.annotation.Resource;
/* 14: */ import javax.servlet.http.HttpServletResponse;
/* 15: */ import net.sf.json.JSONArray;
/* 16: */ import net.sf.json.JSONObject;
/* 17: */ import net.sf.json.JsonConfig;
/* 18: */ import org.springframework.stereotype.Controller;
/* 19: */ import org.springframework.web.bind.annotation.RequestMapping;
/* 20: */ import org.springframework.web.bind.annotation.RequestParam;
/* 21: */
/* 22: */ @Controller
/* 23: */ @RequestMapping({"/admin/blog"})
/* 24: */ public class BlogAdminController
/* 25: */ {
/* 26: */ @Resource
/* 27: */ private BlogService blogService;
/* 28: 40 */ private BlogIndex blogIndex = new BlogIndex();
/* 29: */
/* 30: */ @RequestMapping({"/save"})
/* 31: */ public String save(Blog blog, HttpServletResponse response)
/* 32: */ throws Exception
/* 33: */ {
/* 34: 51 */ int resultTotal = 0;
/* 35: 52 */ if (blog.getId() == null)
/* 36: */ {
/* 37: 53 */ resultTotal = this.blogService.add(blog).intValue();
/* 38: 54 */ this.blogIndex.addIndex(blog);
/* 39: */ }
/* 40: */ else
/* 41: */ {
/* 42: 56 */ resultTotal = this.blogService.update(blog).intValue();
/* 43: 57 */ this.blogIndex.updateIndex(blog);
/* 44: */ }
/* 45: 59 */ JSONObject result = new JSONObject();
/* 46: 60 */ if (resultTotal > 0) {
/* 47: 61 */ result.put("success", Boolean.valueOf(true));
/* 48: */ } else {
/* 49: 63 */ result.put("success", Boolean.valueOf(false));
/* 50: */ }
/* 51: 65 */ ResponseUtil.write(response, result);
/* 52: 66 */ return null;
/* 53: */ }
/* 54: */
/* 55: */ @RequestMapping({"/list"})
/* 56: */ public String list(@RequestParam(value="page", required=false) String page, @RequestParam(value="rows", required=false) String rows, Blog s_blog, HttpServletResponse response)
/* 57: */ throws Exception
/* 58: */ {
/* 59: 80 */ PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(rows));
/* 60: 81 */ Map<String, Object> map = new HashMap();
/* 61: 82 */ map.put("title", StringUtil.formatLike(s_blog.getTitle()));
/* 62: 83 */ map.put("start", Integer.valueOf(pageBean.getStart()));
/* 63: 84 */ map.put("size", Integer.valueOf(pageBean.getPageSize()));
/* 64: 85 */ List<Blog> blogList = this.blogService.list(map);
/* 65: 86 */ Long total = this.blogService.getTotal(map);
/* 66: 87 */ JSONObject result = new JSONObject();
/* 67: 88 */ JsonConfig jsonConfig = new JsonConfig();
/* 68: 89 */ jsonConfig.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor("yyyy-MM-dd"));
/* 69: 90 */ JSONArray jsonArray = JSONArray.fromObject(blogList, jsonConfig);
/* 70: 91 */ result.put("rows", jsonArray);
/* 71: 92 */ result.put("total", total);
/* 72: 93 */ ResponseUtil.write(response, result);
/* 73: 94 */ return null;
/* 74: */ }
/* 75: */
/* 76: */ @RequestMapping({"/delete"})
/* 77: */ public String delete(@RequestParam("ids") String ids, HttpServletResponse response)
/* 78: */ throws Exception
/* 79: */ {
/* 80:106 */ String[] idsStr = ids.split(",");
/* 81:107 */ for (int i = 0; i < idsStr.length; i++)
/* 82: */ {
/* 83:108 */ this.blogService.delete(Integer.valueOf(Integer.parseInt(idsStr[i])));
/* 84:109 */ this.blogIndex.deleteIndex(idsStr[i]);
/* 85: */ }
/* 86:111 */ JSONObject result = new JSONObject();
/* 87:112 */ result.put("success", Boolean.valueOf(true));
/* 88:113 */ ResponseUtil.write(response, result);
/* 89:114 */ return null;
/* 90: */ }
/* 91: */
/* 92: */ @RequestMapping({"/findById"})
/* 93: */ public String findById(@RequestParam("id") String id, HttpServletResponse response)
/* 94: */ throws Exception
/* 95: */ {
/* 96:126 */ Blog blog = this.blogService.findById(Integer.valueOf(Integer.parseInt(id)));
/* 97:127 */ JSONObject jsonObject = JSONObject.fromObject(blog);
/* 98:128 */ ResponseUtil.write(response, jsonObject);
/* 99:129 */ return null;
/* 100: */ }
/* 101: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.controller.admin.BlogAdminController
* JD-Core Version: 0.7.0.1
*/
系统管理员控制层:
SystemAdminController
/* 1: */ package com.blog.controller.admin;
/* 2: */
/* 3: */ import com.blog.entity.Blog;
/* 4: */ import com.blog.entity.BlogType;
/* 5: */ import com.blog.entity.Blogger;
/* 6: */ import com.blog.entity.Link;
/* 7: */ import com.blog.service.BlogService;
/* 8: */ import com.blog.service.BlogTypeService;
/* 9: */ import com.blog.service.BloggerService;
/* 10: */ import com.blog.service.LinkService;
/* 11: */ import com.blog.util.ResponseUtil;
/* 12: */ import java.util.List;
/* 13: */ import javax.annotation.Resource;
/* 14: */ import javax.servlet.ServletContext;
/* 15: */ import javax.servlet.http.HttpServletRequest;
/* 16: */ import javax.servlet.http.HttpServletResponse;
/* 17: */ import net.sf.json.JSONObject;
/* 18: */ import org.springframework.stereotype.Controller;
/* 19: */ import org.springframework.web.bind.annotation.RequestMapping;
/* 20: */ import org.springframework.web.context.WebApplicationContext;
/* 21: */ import org.springframework.web.servlet.support.RequestContextUtils;
/* 22: */
/* 23: */ @Controller
/* 24: */ @RequestMapping({"/admin/system"})
/* 25: */ public class SystemAdminController
/* 26: */ {
/* 27: */ @Resource
/* 28: */ private BloggerService bloggerService;
/* 29: */ @Resource
/* 30: */ private BlogTypeService blogTypeService;
/* 31: */ @Resource
/* 32: */ private BlogService blogService;
/* 33: */ @Resource
/* 34: */ private LinkService linkService;
/* 35: */
/* 36: */ @RequestMapping({"/refreshSystem"})
/* 37: */ public String refreshSystem(HttpServletResponse response, HttpServletRequest request)
/* 38: */ throws Exception
/* 39: */ {
/* 40:55 */ ServletContext application = RequestContextUtils.getWebApplicationContext(request).getServletContext();
/* 41:56 */ Blogger blogger = this.bloggerService.find();
/* 42:57 */ blogger.setPassword(null);
/* 43:58 */ application.setAttribute("blogger", blogger);
/* 44: */
/* 45:60 */ List<BlogType> blogTypeCountList = this.blogTypeService.countList();
/* 46:61 */ application.setAttribute("blogTypeCountList", blogTypeCountList);
/* 47: */
/* 48:63 */ List<Blog> blogCountList = this.blogService.countList();
/* 49:64 */ application.setAttribute("blogCountList", blogCountList);
/* 50: */
/* 51:66 */ List<Link> linkList = this.linkService.list(null);
/* 52:67 */ application.setAttribute("linkList", linkList);
/* 53: */
/* 54:69 */ JSONObject result = new JSONObject();
/* 55:70 */ result.put("success", Boolean.valueOf(true));
/* 56:71 */ ResponseUtil.write(response, result);
/* 57:72 */ return null;
/* 58: */ }
/* 59: */ }
/* Location: D:\classes\
* Qualified Name: com.blog.controller.admin.SystemAdminController
* JD-Core Version: 0.7.0.1
*/
写在最后
完整源码,交流Q:3459067873
Java基于SSM的个人博客系统(源码 包含前后台)的更多相关文章
- 基于SSM开发在线家教预约系统源码
开发环境: Windows操作系统开发工具:Eclipse+Jdk+Tomcat8+mysql数据库 注意:次项目运行Tomcat8服务器里面 次项目比较大,需要自行研究 运行效果图 源码及原文链接: ...
- 26种基于PHP的开源博客系统
26种基于PHP的开源博客系统 来源:本站原创 PHP学习笔记 以下列举的PHP开源Blog系统中,除了我们熟知的WordPress之外,大多都没有使用过,其中一些已经被淘汰,或者有人还在使用.除了做 ...
- Docker——基于Docker安装Drupal博客系统
Docker--基于Docker安装Drupal博客系统 向脚本文件追加内容 cat << EOF > build.sh #设置主机名 hostnamectl set-hostnam ...
- [基于NetCore的简单博客系统]-登录
0-项目背景 一个基于.NET CORE RAZOR PAGES的简单博客系统 技术栈全部采用微软官方实现方式,目的是熟悉新技术 项目地址:https://github.com/ganqiyin/BL ...
- 小兔博客新增源码下载模块,JavaWeb项目实战,JavaScript入门教程 ,JavaSE案例等
从今以后,所有的源码在 http://www.xiaotublog.com/downloadView.html 都可以免费下载,在下载页面还可以直接链接到相关的教程地址(如果有教程的话...). 最近 ...
- 数据传递--------博客-----------springMVC源码分析--RequestToViewNameTranslator请求到视图名称的转换
参考来源:http://blog.csdn.net/qq924862077/article/details/54286976?utm_source=gold_browser_extension Req ...
- java 开发社区蔬菜、食品交易平台系统 源码
开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+Mysql数据库 运行效果图 源码及原文链接:https://javadao.xyz/forum.php? ...
- 基于SSM开发自行车在线租赁管理系统源码
开发环境: Windows操作系统开发工具: Myeclipse+Jdk+Tomcat+MYSQL数据库注意:此项目分管理员与普通用户两种角色运行效果图 源码及原文链接:https://javadao ...
- 基于SSM开发大学食堂采购管理系统源码
开发环境: Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MySQL数据库 次项目分为管理员和普通用户两种角色 运行效果图
随机推荐
- JavaScript数组在指定某个元素前或后添加元素
//原数组 var s = [['g','g'],['h','h'],['i','i']]; //要添加的元素 var s1 = ['a','b','c']; //要添加的元素 var s2 = [' ...
- MySQL 高级性能优化架构 千万级高并发交易一致性系统基础
一.MySQL体系架构 由图,可以看出MySQL最上层是连接组件.下面服务器是由连接池.管理服务和工具组件.SQL接口.查询解析器.查询优化器.缓存.存储引擎.文件系统组成. 1.连接池 管理.缓冲用 ...
- 阿里P9又有新瓜吃咯,马云震怒!!
自从蒋凡出轨事件曝光之后,阿里这各种瓜来得就像龙卷风,隔三差五的爆出员工出轨事件,普通员工.中层.高管全覆盖,早已集齐7颗阿里瓜瓜,可以召唤神龙了. 上次的出轨事件过去还没有一个月的时间,今天又爆出来 ...
- Docker 入门教程(1)——安装
docker大名听说了很久,一直没有去研究过,但现在面试动不动要求docker,还是研究下吧.由于我的电脑是win10系统(穷,买不起mac),安装过程各种坑爹问题不断,一度都想放弃,所以说垃圾win ...
- 安装nginx1.10和状态模块
环境 操作系统: Centos7.2 内核: 3.10.0-327.el7.x86_64 nginx: nginx-1.10.0.tar.gz 安装: 1.安装依赖包 yum -y install g ...
- 《Python编程第4版 上》高清PDF|百度网盘免费下载|Python基础编程
<Python编程第4版 上>高清PDF|百度网盘免费下载|Python基础编程 提取码:8qbi 当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为 ...
- Python os.makedev() 方法
概述 os.makedev() 方法用于以major和minor设备号组成一个原始设备号.高佣联盟 www.cgewang.com 语法 makedev()方法语法格式如下: os.makedev(m ...
- PHP date_interval_format() 函数
------------恢复内容开始------------ 计算两个日期间的间隔,然后格式化时间间隔: 实例 <?php $date1=date_create("2013-01-01 ...
- PHP set_exception_handler() 函数
定义和用法 set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行期间的用户自己的异常处理方法. 该函数返回旧的异常处理程序,如果失败则返回 NULL. ...
- PHP fclose() 函数
定义和用法 fclose() 函数关闭打开的文件. 该函数如果成功则返回 TRUE,如果失败则返回 FALSE. 语法 fclose(file) 参数 描述 file 必需.规定要关闭的文件. 实例 ...