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

news2025/1/19 20:42:57

基于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 {
    @Autowired
    private 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.coloradmin.cn/o/925800.html

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

相关文章

【LeetCode75】第三十六题 路径总和3

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵树&#xff0c;每个节点都有一个值&#xff0c;我们需要找出一条路径&#xff0c;这条路径上所有节点的值的和等于一个目标…

解决华为云ping不通的问题

进入华为云控制台。依次选择&#xff1a;云服务器->点击服务器id->安全组->更改安全组->添加入方向规则&#xff0c;添加一个安全组规则&#xff08;ICMP&#xff09;&#xff0c;详见下图 再次ping公网ip就可以ping通了 产生这一问题的原因是ping的协议基于ICMP协…

缺少代码签名证书会怎么样?

在当下恶意软件攻击频发的情形下&#xff0c;使用代码签名证书来保护代码安全已经成为每个软件开发商的基本认知。代码签名证书将保护软件代码的完整性&#xff0c;避免软件被非法篡改或植入恶意代码病毒&#xff0c;从而使得软件可以正常运行。那么如果软件缺少代码签名证书会…

栈和队列OJ题

有效括号问题&#xff1a; 题目描述&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的…

R语言之 dplyr 包

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 R语言 也可获取。 文章目录 1.使用 filter( ) 和 slice( ) 筛选行2.使用 arrange( ) 排列行3. 使用 select( ) 选择列4.使用 mutate( ) 添加新变量5.使…

FMCW雷达基于时分复用波形(TDMA) 3D点云获取方法的仿真

摘要&#xff1a;通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中&#xff0c;首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据&#xff0c;其次对获取的原始数据依次经行距离、速…

电脑怎么把视频转换gif动图?视频生成gif的操作步骤

如果你也想把一些精彩的视频转gif图片&#xff08;https://www.gif.cn&#xff09;的话&#xff0c;今天的文章你可千万不要错过&#xff0c;利用专业的视频转gif工具&#xff0c;轻松在线视频转gif&#xff0c;操作简单又方便&#xff0c;支持电脑、手机双端操作&#xff0c;赶…

金蝶云星空和管易云接口打通对接实战

金蝶云星空和管易云接口打通对接实战 对接系统金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应用框架等&#xff0c;有效支持企业的运…

静电中和风机在所具有的的优点

半导体生产过程中&#xff0c;静电积聚和离子污染是常见的问题&#xff0c;会对产品质量和工艺稳定性造成负面影响。为了解决这个问题&#xff0c;可以采用专门用于半导体自动化的静电消除/中和离子风机。 静电消除/中和离子风机是一种集静电消除和离子中和功能于一体的装置。…

Arnold置乱

一、Arnold置乱概述 Arnold变换是俄国数学家弗拉基米尔阿诺德&#xff08;Vladimir Igorevich Arnold&#xff09;提出&#xff0c;Arnold将其应用在遍历理论研究中。由于Arnold本人最初对一张猫的图片进行了此种变换&#xff0c;因此它又被称为猫脸变换&#xff08;cat映射&am…

24 | 紧跟时代步伐:微服务模式下API测试要怎么做?

微服务架构&#xff08;Microservice Architecture&#xff09; 微服务是一种架构风格。在微服务架构下&#xff0c;一个大型复杂软件系统不再由一个单体组成&#xff0c;而是由一系列相互独立的微服务组成。其中&#xff0c;各个微服务运行在自己的进程中&#xff0c;开发和部…

【pdf密码】PDF文件,无密码取消限制

PDF文件设置了限制编辑&#xff0c;会导致什么情况呢&#xff1f;比较常见的就是无法编辑、无法复制粘贴、无法打印或者打印文件清晰度差。这些都是PDF限制编辑导致的&#xff0c;想要编辑文件&#xff0c;我们就需要取消限制编辑&#xff0c;但是有些时候&#xff0c;大家可能…

静电中和设备在半导体自动化生产中起到了怎样的作用

静电中和设备在半导体自动化生产中起到了重要的作用。在半导体生产过程中&#xff0c;由于材料的摩擦、粉尘的飞扬、人员的移动等原因&#xff0c;会产生大量的静电电荷。这些静电电荷如果不得到有效的中和处理&#xff0c;会对生产过程和产品质量产生严重的影响。 静电中和设…

LPC1768运行threadx数组越界导致出现硬件错误死机问题的排查

移植了threadx后运行发现程序莫名跑飞&#xff0c;停留在 HardFaultHandler 即硬件错误异常 调试过程中发现在汇编启动文件启动后跳转main函数即刻就发生了错误异常&#xff0c;先排除是在操作系统运行过程中的问题&#xff0c;而且是硬件错误异常所以先对导致改错误的可能进行…

ENSP操作平台命令汇总一(第五课)

一 Ensp基础指令操作 1 ipconfig 查看 pc机的IP地址2 ping 连接的IP地址 3 system-view 进入系统视图4 [Huawei]interface GigabitEthernet 0/0/1 进入接口视图 过0/0/15 quit 返回上一层视图6 ctrlZ 快速返回用户视图7 [sy]sysname tedu-ntd-lswl 进入系统视…

Java --- 内部类

目录 一、什么是内部类 二、为什么需要内部类 三、内部类的分类 3.1、成员内部类 3.2、局部内部类 四、练习 一、什么是内部类 将一个类A定义在另一个类B里面&#xff0c;里面的那个类A就称为内部类&#xff08;InnerClass&#xff09;&#xff0c;类B则称为外部类&#…

SQL 错误 [22007]: ERROR: invalid input syntax for type date: ““

0. 背景 PG数据库一张表有这样一个varchar类型的字段end_date,存储的值是格式化后的年月日日期如 2024-08-10 现在我需要根据当前日期与end_date的差值作为where条件过滤,我的写法 select …… from my_table_name where current_date - cast (end_date as date) >100报错…

苹果“迎难而上”,印度赚印度花,扩大产能,推动手机制造业发展

根据报道&#xff0c;苹果公司在由印度当地媒体 Business Today 报道的会议中表示&#xff0c;他们计划扩大在印度的生产产能。这也进一步显示了苹果对印度市场的重视程度。 据统计数据显示&#xff0c;印度已成为苹果第五大iPhone市场&#xff0c;其市场营收超越了法国和德国&…

React绑定antd输入框,点击清空或者确定按钮实现清空输入框内容

其实实现原理和vue的双向绑定是一样的&#xff0c;就是监听输入框的onChange事件&#xff0c;绑定value值&#xff0c;当输入框内容发生变化后&#xff0c;就重新设置这个value值。 示例代码&#xff1a;我这里是统一在handleCancel这个函数里面处理清空逻辑了&#xff0c;你们…

再写CentOS7升级OpenSSL-1.0.1U

本文在CentOS7.4以及TencentOS 2.4上测试通过。 原系统自带OpenSSL 1.0.2k-fips。 编译安装方法跟之前的没啥区别。 从官网下载1.0.1u版https://www.openssl.org/source/ 使用tar解包 tar xfz openssl-1.0.1u.tar.gz 依次执行如下&#xff1a; cd openssl-1.0.1u ./con…