@

系统简介

技术点: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 countList()

/* 19: */ {

/* 20:26 */ return this.blogTypeDao.countList();

/* 21: */ }

/* 22: */

/* 23: */ public List list(Map map)

/* 24: */ {

/* 25:30 */ return this.blogTypeDao.list(map);

/* 26: */ }

/* 27: */

/* 28: */ public Long getTotal(Map 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 list(Map map)

/* 24: */ {

/* 25:30 */ return this.commentDao.list(map);

/* 26: */ }

/* 27: */

/* 28: */ public Long getTotal(Map 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 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 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("

上一篇:没有了

");

} else {

pageCode.append("

上一篇:" + lastBlog.getTitle() + "

");

}

if ((nextBlog == null) || (nextBlog.getId() == null)) {

pageCode.append("

下一篇:没有了

");

} else {

pageCode.append("

下一篇:" + nextBlog.getTitle() + "

");

}

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("");

pageCode.append("

  • ");

if (page.intValue() > 1) {

pageCode.append("

上一页");

} else {

pageCode.append("

上一页");

}

if (page.intValue() < totalPage) {

pageCode.append("

下一页");

} else {

pageCode.append("

下一页");

}

pageCode.append("

");

pageCode.append("");

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 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 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 blogTypeCountList = this.blogTypeService.countList();

/* 46:61 */ application.setAttribute("blogTypeCountList", blogTypeCountList);

/* 47: */

/* 48:63 */ List blogCountList = this.blogService.countList();

/* 49:64 */ application.setAttribute("blogCountList", blogCountList);

/* 50: */

/* 51:66 */ List 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

*/

写在最后

完整源码,或者遇到问题可加博主V交流:Code2Life2

java个人博客系统源码_Java基于SSM的个人博客系统(源码 包含前后台)相关推荐

  1. [含论文+源码等]基于SSM实现的新闻发布系统

    下载:https://download.csdn.net/download/yuanma99/85169237 项目介绍: <基于SSM实现的新闻发布系统> 系统说明: <基于SSM ...

  2. 计算机毕业设计-基于SSM+Vue汽车保养预约系统Java汽车美容系统-源码 讲解 文档

    注意:该项目只展示部分功能,如需了解,评论区咨询即可. 本文目录 1.开发环境 2.系统的设计背景 3 各角色功能模块 3.1 用户 3.2 保养技师 3.3 管理员 4 系统页面展示 4.1 用户功 ...

  3. 基于SSM的企业OA办公系统

    源码编号:D-E25 点击查看(分类规则) 项目名称:基于SSM的企业OA办公系统 源码作者:霹雳开发 论文作者:逍遥游撰写 当前版本:V1.0版本 难度等级:✩✩✩ 复杂程度:✩✩✩点击查看难度等级 ...

  4. 基于SSM框架的OA办公系统

    在线OA办公系统,毕设项目 基于SSM框架的OA办公系统,毕设项目 软件功能说明 环境搭建 开发环境 组件描述 源代码.资源及数据清单 源代码与数据导入 安装包及数据清单 用户操作说明 项目演示视频 ...

  5. 基于SSM的家校通系统(Spring+SpringMVC+Mybatis+mysql)

    这是一基于SSM框架开发的家校通. 源代码: 基于SSM的家校通系统(Spring+SpringMVC+Mybatis+mysql).zip-Java文档类资源-CSDN下载这是一基于SSM(spri ...

  6. 【java毕业设计源码】基于SSM的疫情社区物资配送系统

    目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...

  7. 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 本源码技术栈: ...

  8. VUE毕设项目 - 基于SSM的网上租车系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2.1 界面展示 3 设计方案 3.1 概述 3.2 系统流程 3.2.1 系统开发流程 3.2.2 登录流程 3.3 系统结构设计 4 项目获取 1 项目简介 ...

  9. SSM毕设项目 - 基于SSM的电影院在线售票系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2.1 界面展示 3 设计方案 3.1 概述 3.2 开发环境 3.3 系统流程 3.3.1 系统开发流程 3.3.2 用户登录流程 3.3.3 系统操作流程 3 ...

最新文章

  1. 组织级项目管理实例分享——来自项目管理群的讨论
  2. 使用ganymed-ssh2-build通过ssh获得远程服务器参数
  3. asp.net mvc 自定义全局过滤器 验证用户是否登录
  4. android 省市区选择器
  5. java中定义一个CloneUtil 工具类
  6. php no route to host,java.net.NoRouteToHostException: No route to host解决方法
  7. Dubbo学习总结(9)——Apache Dubbo Roadmap 2019
  8. 计算机等级考试三级教材,计算机等级考试三级过关技巧
  9. 控制反转 php,[PHP学习] 控制反转以及依赖注入的日常使用
  10. Finalize/Dispose资源清理模式
  11. 元素的 “包含块” 如何确定?Containing Block
  12. 【2.0版本】Capi文档生成帮助类,一键生成WebApi接口说明文档,方法异常处理,模拟请求接口(使用Hplus模版)
  13. “区块链+供应链”的应用案例
  14. 除了专业技能,Web前端工程师需要具备哪些基本素质?
  15. golang base64解码碰到的坑
  16. 计算机网络知识之1M宽带下载速度多少?
  17. Simon IELTS: Reading
  18. 抖音+今日头条副业项目,新玩法,后期收益月入过万
  19. Second-Order Cone Programming(SOCP) 二阶锥规划
  20. CentOS 7 /etc/profile、.bash_profile 环境变量配置,提示-bash: fing: command not found

热门文章

  1. java 捕获异常顺序_Java基础:异常捕获顺序
  2. classnotfoundexception是什么异常_大佬说“异常信息”是优秀程序员编写代码的宝贵财富,这是真的吗...
  3. Linux C++11——多线程类thread
  4. source insight 无法查找与跳转和恢复默认设置
  5. 四级英语作文大学生使用计算机,大学生四级英语作文范文
  6. HDU-4417-Super Mario(线段树+离线处理)
  7. fastReport 小总结
  8. TCP的三次握手和四次挥手理解及面试题
  9. 可能比文档还详细--VueRouter完全指北
  10. 查看mysql所有命令