基于SSM+vue框架的个人博客网站源码和论文

基于SSM+vue框架的个人博客网站源码和论文061

 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

  • (设计)研究背景与意义

关于博客的未来:在创办了博客中国(blogchina)、被誉为“博客教父”的方兴东接受了记者的专访。他认为,博客这一事物在中国的发展大致经过以下三个阶段:第一阶段是2002年至2003年,少数人写博;第二阶段是2003年至2005年,博客爱好者写博;第三阶段是2005年至2006年以及接下来的两年,博客进入大众化前期。“如果说第一阶段和第二阶段博客的发展还是理想主义和浪漫主义的话,那从第三阶段开始,博客已经向现实主义转变。再过两年,即将进入大众化晚期,也就是说,那些网络保守主义者也将加入到博客大军中来”。在我国,已经有十几万个博客网站,博客数量达到100多万个,并且呈现40%的年增长进度,着实让国人刮目相看。因此,博客经济引起了专家学者和行业官员的普遍关 注。博客现象,能给中国带来什么?网络博客,能成为每个网民的网络生活方式吗?从互联网的兴起到现在,网民由上网浏览网络文章和查找资料以及上论坛发帖子,发展到建网站、建个人网站论坛主页,再发展成现在的建博客,一路走来,网民在网络一直打拼着建造着一个属于自己的地盘,不知从何时起,建博客、写博客成为了众多网民网络生活的重要组成部分,与网络聊天成了并驾齐驱的热点,共同成为网民上网最关心的事情。

博客在中国的发展始于1998年,但直到2000年,它开始流行。2000年,博客开始进入中国和快速发展。直到2004年“木子美”事件,中国人民了解了博客和使用它。2005年,国内门户网站,如新浪、搜狐、原始的博客业务并不乐观,但也加入博客阵营,开始进入春秋时期。首先,博客记录日常访问网站的观点和意见,并开放给别人参考和遵循。但随着博客的迅速扩张,已经远离最初的目的。有许多差异成千上万的博客在互联网上发布和张贴在博客。然而,由于通信比电子邮件、讨论组更加简单和容易,博客已经成为家庭、公司、部门和团队越来越流行的通信工具,因为它已逐渐被应用在企业内部网络。

 

本系统为用户提供实现了以下功能:
1.登录功能:

游客进入系统,不用输入账户以及密码,直接进入页面进行浏览。可以阅读文章,查看图片,发表评论。

普通用户进入系统,为用户分配了用户名和密码。用户必须先登录,进入操作界面。用户输入ID和密码,通过服务器验证方可运行,否则显示消息提示。
2.网站前台功能:
浏览:

博主个人信息、文章; ‚
发表:

留言,评论
3.网站后台功能:
用户管理模块:实现用户信息及密码的修改  ‚
博文的分类与管理模块:实现分类的增、删、改
评论管理模块:实现删除评论功能 „
留言管理模块:实现删除、回复评论功能 …
系统管理模块:实现博客版面的定义与管理 ‡博客的数据统计

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.DiscussxiangcefenxiangEntity;
import com.entity.view.DiscussxiangcefenxiangView;import com.service.DiscussxiangcefenxiangService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 相册分享评论表* 后端接口* @author * @email * @date 2021-05-28 23:53:30*/
@RestController
@RequestMapping("/discussxiangcefenxiang")
public class DiscussxiangcefenxiangController {@Autowiredprivate DiscussxiangcefenxiangService discussxiangcefenxiangService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){EntityWrapper<DiscussxiangcefenxiangEntity> ew = new EntityWrapper<DiscussxiangcefenxiangEntity>();PageUtils page = discussxiangcefenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussxiangcefenxiang), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){EntityWrapper<DiscussxiangcefenxiangEntity> ew = new EntityWrapper<DiscussxiangcefenxiangEntity>();PageUtils page = discussxiangcefenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussxiangcefenxiang), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( DiscussxiangcefenxiangEntity discussxiangcefenxiang){EntityWrapper<DiscussxiangcefenxiangEntity> ew = new EntityWrapper<DiscussxiangcefenxiangEntity>();ew.allEq(MPUtil.allEQMapPre( discussxiangcefenxiang, "discussxiangcefenxiang")); return R.ok().put("data", discussxiangcefenxiangService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(DiscussxiangcefenxiangEntity discussxiangcefenxiang){EntityWrapper< DiscussxiangcefenxiangEntity> ew = new EntityWrapper< DiscussxiangcefenxiangEntity>();ew.allEq(MPUtil.allEQMapPre( discussxiangcefenxiang, "discussxiangcefenxiang")); DiscussxiangcefenxiangView discussxiangcefenxiangView =  discussxiangcefenxiangService.selectView(ew);return R.ok("查询相册分享评论表成功").put("data", discussxiangcefenxiangView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){DiscussxiangcefenxiangEntity discussxiangcefenxiang = discussxiangcefenxiangService.selectById(id);return R.ok().put("data", discussxiangcefenxiang);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){DiscussxiangcefenxiangEntity discussxiangcefenxiang = discussxiangcefenxiangService.selectById(id);return R.ok().put("data", discussxiangcefenxiang);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){discussxiangcefenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(discussxiangcefenxiang);discussxiangcefenxiangService.insert(discussxiangcefenxiang);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){discussxiangcefenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(discussxiangcefenxiang);discussxiangcefenxiangService.insert(discussxiangcefenxiang);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody DiscussxiangcefenxiangEntity discussxiangcefenxiang, HttpServletRequest request){//ValidatorUtils.validateEntity(discussxiangcefenxiang);discussxiangcefenxiangService.updateById(discussxiangcefenxiang);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){discussxiangcefenxiangService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<DiscussxiangcefenxiangEntity> wrapper = new EntityWrapper<DiscussxiangcefenxiangEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = discussxiangcefenxiangService.selectCount(wrapper);return R.ok().put("count", count);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023最新任务悬赏平台源码uniapp+Thinkphp新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机

新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机制 后端是&#xff1a;thinkphpFastAdmin 前端是&#xff1a;uniapp 1.优化首页推荐店铺模块如有则会显示此模块没有则隐藏。 2修复首页公告&#xff0c;更改首页公告逻辑。&#xff08;后台添加有公…

C# 学习笔记--个人学习使用 <1>

C# 学习笔记 Chapter 1 C# 比较软的基础部分Section 1 类与命名空间Part 1 命名空间 NameSpacePart 2 类 Class Section 2 基本元素Section 3 数据类型Part 1 什么是类型&#xff1f;Part 2 类型在 C Sharp 中的作用Part 3 C Sharp 中的数据类型 Section 4 变量、对象与内存Par…

URI和URL和URN区别

URI、URL 和 URN 是一系列从不同角度来看待资源标识和定位的概念。虽然它们有一些重叠&#xff0c;但每个概念都强调了不同的方面。 URI&#xff08;Uniform Resource Identifier&#xff09;&#xff1a;URI 是一个通用的术语&#xff0c;用于标识和定位资源。它是一个抽象的概…

多线程(二)

一.关于线程的常用操作 1.启动线程 run(): 对于run方法的覆写只是指定线程要做的任务清单&#xff0c;而不是真正的启动线程 start()&#xff1a; start()方法才是真正的在底层创建出一个线程&#xff0c;并且启动 2.中断线程 1.通过共享的标记来中断 package demo; impor…

UML四大关系

文章目录 引言UML的定义和作用UML四大关系的重要性和应用场景关联关系继承关系聚合关系组合关系 UML四大关系的进一步讨论UML四大关系的实际应用软件开发中的应用其他领域的应用 总结 引言 在软件开发中&#xff0c;统一建模语言&#xff08;Unified Modeling Language&#x…

谈谈对 GMP 的简单认识

犹记得最开始学习 golang 的时候&#xff0c;大佬们分享 GMP 模型的时候&#xff0c;总感觉云里雾里&#xff0c;听了半天&#xff0c;并没有一个很清晰的概念&#xff0c;不知 xmd 是否会有这样的体会 虽然 golang 入门很简单&#xff0c;但是对于理解 golang 的设计思想和原…

threejs特殊几何体(一:文字几何体对象)

threejs中文字几何体通过newTextGeometry&#xff08;&#xff09;生成&#xff0c;它被单独作为一个类存在于threejs中const txtGeo new TextGeometry("threejs", { ...opts, font: font }); 我们先看效果&#xff1a; <template><div></div> &…

Jumpserver堡垒机管理(安装和相关操作)-------从小白到大神之路之学习运维第89天

第四阶段 时 间&#xff1a;2023年8月28日 参加人&#xff1a;全班人员 内 容&#xff1a; Jumpserver堡垒机管理 目录 一、堡垒机简介 &#xff08;一&#xff09;运维常见背黑锅场景 &#xff08;二&#xff09;背黑锅的主要原因 &#xff08;三&#xff09;解决背黑…

五种 CSS 位置类型以实现更好的布局

在 Web 开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;用于设置网站样式的设置。为了控制网页上元素的布局&#xff0c;使用CSS的position属性。因此&#xff0c;在今天这篇文章中&#xff0c;我们将了解 CSS 位置及其类型。 CSS 位置属性用于控制网页上元素的位置…

如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo&#xff0c;但自己在训练过程仍然遇到不少疑惑。因此&#xff0c;我这总结一下操作过程中所解决的问题。 1、deepsort的训练集是否必须基于逐帧视频&#xff1f; 我经过尝试&#xff0c;发现非连续性的图像仍可以作为训练集。一个实例&#xff0…

二叉树、红黑树、B树、B+树

二叉树 一棵二叉树是结点的一个有限集合&#xff0c;该集合或者为空&#xff0c;或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 二叉树的特点&#xff1a; 每个结点最多有两棵子树&#xff0c;即二叉树不存在度大于2的结点。二叉树的子树有左右之分&#xf…

HPC是如何助力AI推理加速的?

高性能计算&#xff08;High-Performance Computing&#xff0c;HPC&#xff09;通过提供强大的计算能力、存储资源和网络互联&#xff0c;可以显著地辅助人工智能&#xff08;AI&#xff09;应用更快地进行训练和推断。那么&#xff0c;HPC是如何助力AI推理加速的&#xff1f;…

PostgerSql

建表修改字段等语句 1.建表 create table student ( id int, name varchar(30), birthday date, score numeric(5,2) ) 2.修改表名称 alter table student rename to student1; 3.修改表中列的类型 alter table student1 alter column name type varchar(40); 4.删除表的…

java八股文面试[多线程]——什么是线程安全

对线程安全的理解 总结&#xff1a;一个进程内的多个线程同时访问堆内存。 知识来源&#xff1a; 【并发与线程】对线程安全的理解_哔哩哔哩_bilibili

9.4 集成功率放大电路

OTL、OCL 和 BTL 电路均有各种不同输出功率和不同电压增益的集成电路。应当注意&#xff0c;在使用 OTL 电路时&#xff0c;需外接输出电容。为了改善频率特性&#xff0c;减小非线性失真&#xff0c;很多电路内部还引入深度负反馈。这里以低频功放为例。 一、集成功率放大电路…

创邻科技张晨:图数据库,激活数据要素的新基建

“数据经济时代&#xff0c;数据要素产业链的各细分领域均蕴含机遇&#xff0c;图技术作为网络协同和数据智能的底层发动机&#xff0c;将深度掘金数字中国价值潜能”。 8月22日&#xff0c;在2023中国&#xff08;南京&#xff09;国际软件产品和信息服务交易博览会的信息技术…

Selenium 遇见伪元素该如何处理?

问题发生 在很多前端页面中&#xff0c;大家会见到很多&#xff1a;:before、::after 元素&#xff0c;比如【百度流量研究院】&#xff1a; 比如【百度疫情大数据平台】&#xff1a; 以【百度疫情大数据平台】为例&#xff0c;“累计确诊”文本并没有显示在 HTML 源代码中&am…

【项目实战典型案例】05.前后端分离的好处(发送调查问卷)

目录 一、背景二、思路三、过程1、主要的业务逻辑2、解决问题的思路 四、总结五、面向对象的好处 一、背景 以下流程图是给用户发送调查问的整体流程&#xff0c;将不必要的业务逻辑放到前端进行处理。这样导致逻辑混乱难以维护。前后端分离的其中一个目的是将功能的样式放在了…

AODV代码实现详解——原理与源码分析(一)

首先来几个标准参考&#xff1a; RFC 3561 RFC 3561 中文翻译 一个博客 挺好的另一个博客 事件&#xff1f; 字段长度&#xff1f; 事件驱动 各种定时器 状态转移图&#xff1f; AODV协议 基本概念 AODV&#xff08;Ad hoc On-Demand Distance Vector&#xff09;是一种基于…