基于JAVA SpringBoot和HTML美食网站博客程序设计

摘要

        美食网站是一个提供各种美食信息和食谱的网站,旨在帮助用户发现、学习和分享美食。旨在探讨美食网站在现代社会中的重要性和影响。随着互联网的普及,越来越多的人开始使用美食网站来获取各种美食信息和食谱。这些网站不仅提供了方便快捷的搜索功能,还为用户提供了分享和交流的平台。随着移动互联网的发展,美食网站应该更加注重用户体验和个性化服务,提供更加精准的推荐和定制化的功能。同时,美食网站也应该加强与餐饮业的合作,推动餐饮业的创新和发展。总之,美食网站为用户提供了一个全面了解和学习美食的平台,帮助他们发现新的食谱、餐厅和烹饪技巧,享受美食带来的乐趣。

所用技术

前端:LayUI、JQuery、HTML5+CSS3、Ajax

后端:SpringBoot+Spring-Data-Jpa

安全控件:SpringSecurity

页面采用:Thymeleaf

项目管理:Maven

基本功能

拥有管理员和普通用户两种角色;

注册、登录、发美食博客、查看美食博客、美食博客审核(管理员)、个人资料设置、密码修改、权限修改(管理员)等。

部分代码展示

@Controller
@RequestMapping(value="/blog")
public class BlogsController extends CommonController<Blogs, Integer, BlogsForm> {@Autowiredprivate BlogsSerive blogService;@Autowiredprivate SystemDataService dataService;@Autowiredprivate UserUtils userUtils;@Autowiredprivate CommentService commentService;@Overridepublic void manage(ModelMap map) {map.put("user", userUtils.getUser());super.manage(map);}@Overridepublic void edit(BlogsForm form, ModelMap map) throws InstantiationException, IllegalAccessException {map.put("sf", dataService.findByDictionariesCode("SJZD_BKFL"));map.put("type", dataService.findByDictionariesCode("SJZD_WZLX"));super.edit(form, map);}@Overridepublic Object save(BlogsForm form) {System.out.println(form.getText()+"=========");form.setUser(userUtils.getUser());SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {Blogs model = new Blogs();String name = userUtils.getName();Integer id = form.getId();if(id != null) {model = blogService.findById(id);model.setUpdateDate(sdf.format(new Date()));model.setUpdateName(name);}else {form.setCreateDate(sdf.format(new Date()));form.setCreateName(name);model.setUpdateDate(sdf.format(new Date()));model.setUpdateName(name);}BeanUtils.copyProperties(form, model,"id");blogService.save(model);Integer id2;if(form.getId() != null) {id2 = form.getId();}else {id2 = blogService.findByUserNicknameAndUpdateDate(name, model.getUpdateDate()).getId();}return new AjaxResult(id2+"");} catch (Exception e) {return new AjaxResult(false,"数据保存失败");}}/*** 访问页面* @param id* @param map*/@RequestMapping(value="/visit")public void visit(Integer id, ModelMap map) {map.put("blog", blogService.findById(id));map.put("comment", commentService.findByBlogId(id));}/*** 访问页面数据* @param id* @return*/@RequestMapping(value="/blogText")@ResponseBodypublic Object blogText(Integer id) {return blogService.findById(id).getText();}@RequestMapping(value="/audit")public void audit(ModelMap map) {}@RequestMapping(value="/indexBlog")public void indexBlog() {}/*** 同意* @param id* @return*/@RequestMapping(value="/consent")@ResponseBodypublic Object consent(Integer id) {try {Blogs blogs = blogService.findById(id);blogs.setBlogStatic("审核通过");blogService.save(blogs);return new AjaxResult("同意成功");} catch (Exception e) {return new AjaxResult(false,"同意失败");}}/*** 拒绝* @param id* @return*/@RequestMapping(value="/refuse")@ResponseBodypublic Object refuse(Integer id, String jy) {try {Blogs blogs = blogService.findById(id);blogs.setBlogStatic("已拒绝");blogs.setSuggest(jy);blogService.save(blogs);return new AjaxResult("拒绝成功");} catch (Exception e) {return new AjaxResult(false,"拒绝失败");}}@RequestMapping(value="/fysj")@ResponseBodypublic Object fysj(Integer page, BlogsForm form) {Sort sort=Sort.by(Sort.Direction.DESC, "updateDate");Pageable pageable = PageRequest.of(page-1, 10, sort);Page<Blogs> blog;Specification<Blogs> spec = buildSpec2(form);blog = blogService.findAll(spec, pageable);return FlowloadUtils.buildResult(blog);}@RequestMapping(value="/fysj2")@ResponseBodypublic Object fysj2(Integer page, BlogsForm form) {Sort sort=Sort.by(Sort.Direction.DESC, "updateDate");Pageable pageable = PageRequest.of(page-1, 10, sort);Page<Blogs> blog;Specification<Blogs> spec = buildSpec3(form);blog = blogService.findAll(spec, pageable);return FlowloadUtils.buildResult(blog);}private Specification<Blogs> buildSpec3(BlogsForm form) {Specification<Blogs> specification = new Specification<Blogs>() {private static final long serialVersionUID = 1L;@Overridepublic Predicate toPredicate(Root<Blogs> root, CriteriaQuery<?> query, CriteriaBuilder cb) {HashSet<Predicate> rules=new HashSet<>();Predicate difficultylevel = cb.equal(root.get("blogStatic"), "审核通过");rules.add(difficultylevel);return cb.and(rules.toArray(new Predicate[rules.size()]));}};return specification;}private Specification<Blogs> buildSpec2(BlogsForm form) {Specification<Blogs> specification = new Specification<Blogs>() {private static final long serialVersionUID = 1L;@Overridepublic Predicate toPredicate(Root<Blogs> root, CriteriaQuery<?> query, CriteriaBuilder cb) {HashSet<Predicate> rules=new HashSet<>();SysUser user = userUtils.getUser();Predicate difficultylevel = cb.equal(root.get("user").get("id"), user.getId());rules.add(difficultylevel);return cb.and(rules.toArray(new Predicate[rules.size()]));}};return specification;}@RequestMapping(value="/page2")@ResponseBodypublic HashMap<String, Object> page2(ModelMap map, DataGridParam param, BlogsForm form) {Sort sort=Sort.by("id");Pageable pabeable = param.getPageable(sort);Specification<Blogs> spec = buildSpec1(form);Page<Blogs> page = blogService.findAll(spec, pabeable);return DataGridUtils.buildResult(page);}private Specification<Blogs> buildSpec1(BlogsForm form) {Specification<Blogs> specification = new Specification<Blogs>() {private static final long serialVersionUID = 1L;@Overridepublic Predicate toPredicate(Root<Blogs> root, CriteriaQuery<?> query, CriteriaBuilder cb) {HashSet<Predicate> rules=new HashSet<>();Predicate difficultylevel = cb.like(root.get("blogStatic"), "%待审核%");rules.add(difficultylevel);return cb.and(rules.toArray(new Predicate[rules.size()]));}};return specification;}/*** 评论*/@RequestMapping(value="/comment")@ResponseBodypublic Object comment(String comment, Integer id) {try {SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Comment model = new Comment();model.setText(comment);model.setUser(userUtils.getUser());model.setBlog(blogService.findById(id));model.setRead2(false);model.setCreateDate(sdf.format(new Date()));commentService.save(model);return new AjaxResult("评论成功");} catch (Exception e) {return new AjaxResult(false,"评论失败");}}
}

演示视频

基于JAVA SpringBoot和HTML美食网站博客程序

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

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

相关文章

小型洗衣机哪个牌子质量好?性价比高的迷你洗衣机推荐

这两年内衣洗衣机可以称得上较火的小电器&#xff0c;小小的身躯却有大大的能力&#xff0c;一键可以同时启动洗、漂、脱三种全自动为一体化功能&#xff0c;在多功能和性能的提升上&#xff0c;还可以解放我们双手的同时将衣物给清洗干净&#xff0c;让越来越多小伙伴选择一款…

计算机网络期末复习-Part5

1、CRC计算 看例题&#xff1a;待发送序列为101110&#xff0c;生成多项式为X31&#xff0c;计算CRC校验码 先在待发送序列末尾添加与生成多项式次数相同的零&#xff0c;在上述例子中&#xff0c;生成多项式是X^3 1&#xff0c;所以需要添加3个零&#xff0c;待发送序列变成…

Redis最新2023年面试题高级面试题及附答案解析(1)【Redis最新2023年面试题高级面试题及附答案解析-第三十八刊】

文章目录 Redis最新2023年面试题高级面试题及附答案解析(1)01、为什么 Redis 需要把所有数据放到内存中&#xff1f;02、查看 Redis 使用情况及状态信息用什么命令&#xff1f;03、MySQL里有2000w数据&#xff0c;Redis 中只存20w的数据&#xff0c;如何保证 Redis 中的数据都是…

如何选择正确的SSL证书?

SSL证书已经成为网站安全管理的重要部分&#xff0c;但是市场上SSL证书种类繁多&#xff0c;很多新手在初次购买时都会感到困惑。下面我们就一起来看看如何快速地选择正确的SSL证书。 第一步&#xff1a;明确SSL证书的主要分类 SSL证书主要有三种类型&#xff1a;单域名证书、…

openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过程

文章目录 openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过程122.1 创建并执行涉及加密列的函数/存储过程 openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过程 密态支持函数/存储过程当前版本只支持sql和P…

系列八、Mybatis一对多查询,只查询出了一条记录

一、Mybatis一对多查询&#xff0c;只查询出了一条记录 1.1、问题说明 典型的权限管理框架的数据库表中&#xff0c;一般会存在这样3种角色的表&#xff0c;即用户表、角色表、用户角色关联表&#xff0c;表设计好之后&#xff0c;往这三张表中初始化了一些测试数据&#xff0…

ffmpeg安装教程(windows、Linux下python环境)

本文旨在向大家介绍ffmpeg在Windows和Linux系统中的安装方法。 目录 一、Windows 安装 ffmpeg1.1 官网下载 ffmpeg 运行程序1.2 环境配置1.3 测试 二、Linux 安装ffmpeg2.1 Linux中安装ffmpeg2.2 python环境安装 ffmpeg2.1.1 为什么要介绍这个2.1.1 成功安装示例 一、Windows …

自然语言处理(NLP)-spacy简介以及安装指南(语言库zh_core_web_sm)

spacy 简介 spacy 是 Python 自然语言处理软件包&#xff0c;可以对自然语言文本做词性分析、命名实体识别、依赖关系刻画&#xff0c;以及词嵌入向量的计算和可视化等。 1.安装 spacy 使用 “pip install spacy" 报错&#xff0c; 或者安装完 spacy&#xff0c;无法正…

算不上最全,但都是必备——Redis这些不会不行啊

Redis篇 数据类型及其业务场景 字符串&#xff08;String&#xff09; 字符串类型是最基本的数据类型&#xff0c;value 最多可以容纳的数据长度是 512M。 存储任意类型的数据&#xff0c;包括数字、文本等。适用于缓存、计数器、分布式锁等场景。共享 Session 信息 哈希&am…

【C++历险记】STL之set详解

个人主页&#xff1a;兜里有颗棉花糖&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…

GitHub Universe 2023:AI 技术引领软件开发创新浪潮

GitHub 是全球领先的软件开发和协作平台&#xff0c;数百万开发者和企业在此分享、学习和创建卓越的软件。同时 GitHub 处在 AI 技术前沿&#xff0c;通过其先进的 AI 技术增强开发者体验并赋能未来软件开发的使命。在今天的文章中&#xff0c;我们将一起看看在 GitHub 年度大会…