毕业设计实战:基于HTML+Spring Boot+Vue+MySQL的环保网站设计与实现,从需求到测试全流程避坑指南!

54 阅读15分钟

毕业设计实战:基于HTML+Spring Boot+Vue+MySQL的环保网站设计与实现,从需求到测试全流程避坑指南!

谁懂啊!当初做环保网站毕设时,光“濒危生物表”和“地区表”的外键关联就卡了3天——一开始没给濒危生物表设“地区id”外键,查某地区濒危生物时数据全混到其他区域,导师看了直接让我“重新梳理数据库实体关系”😫 后来踩遍无数坑才摸出高效落地流程,今天把需求分析、技术选型、功能实现到测试的核心细节说透,宝子们不用熬夜改代码,轻松搞定毕设!

一、先搞懂“环保网站要啥”!需求分析别瞎蒙

刚开始我跳过需求分析就写代码,花两周加了个“濒危生物数量预测算法”,结果导师一句“核心是信息发布、收藏互动、论坛交流,不是复杂算法”直接打回重改!后来才明白,需求分析得先抓准“谁用系统、要干啥”,这步做对,少走90%弯路。

1. 核心用户&功能拆解(踩坑后总结版)

系统只有两类核心用户:管理员、普通用户(别加“环保专家子角色”!我当初加了后权限混乱,专家能删除管理员发布的公告,砍掉才顺畅),功能明确区分,避免越权:

  • 管理员端(必做功能):
    • 基础管理:维护个人信息(修改密码、用户名)、管理用户账号(新增/重置密码/逻辑删除)、按姓名/手机号筛选用户
    • 核心内容管理:濒危生物管理(上传图片、填写现存数量/介绍)、环保健康管理(分类发布健康知识、上传封面)、环境保护管理(按地区维护环保项目)、环境保护法管理(发布法规原文、分类标注)
    • 互动与公告管理:论坛管理(审核/删除违规帖子、回复用户留言)、公告信息管理(发布环保通知、选择公告类型)、轮播图管理(设置首页轮播图、调整显示顺序)
  • 用户端(核心需求):
    • 账号操作:注册(填写姓名、手机号、邮箱)、登录、修改个人信息(上传头像、更新联系方式)
    • 信息浏览与互动:查看濒危生物详情(按地区筛选)、浏览环保健康/环境保护知识、阅读环境保护法、查看系统公告(按类型分类)
    • 收藏与交流:收藏濒危生物/环保健康/环境保护内容、发布论坛帖子(填写标题/内容)、回复他人帖子、查看个人收藏与发帖历史

2. 需求分析避坑指南(血泪教训!)

  • 别空想!找2个同学模拟管理员和用户提意见:比如用户说“想快速找到自己收藏的内容”,我才加了“收藏按类型分类”(濒危生物/环保健康/环境保护),比瞎加“数量预测”实用
  • 一定要画用例图!用DrawIO画“管理员-发布濒危生物信息”“用户-收藏环保知识”“管理员-审核论坛帖子”,跟导师汇报时比光说“我要做XX功能”直观10倍(当初没画,导师听20分钟没get到逻辑)
  • 写“需求规格说明书”!把约束条件写清楚(如“濒危生物现存数量≥0”“公告标题非空”“论坛帖子内容≥10字”),编码时对着做,不跑偏

3. 可行性分析别敷衍!3点写清楚就能过

导师超爱问“系统可行吗”,别只说“我觉得可行”,从3个角度写,显专业:

  • 技术可行性:HTML、Spring Boot、Vue、MySQL都是课堂学过的,图书馆有《Spring Boot实战》《MySQL数据库设计与优化》,遇到问题能查资料(别用Spring Boot 3.x+Vue 3组合!我当初试了,前后端联调时濒危生物图片上传接口卡5天,换回Spring Boot 2.7+Vue 2才顺)
  • 经济可行性:工具全免费!Eclipse(免费版)、MySQL、Navicat(学生版)、Tomcat官网直接下,答辩时说“开发成本0,还能帮环保机构节约线下宣传、纸质资料印刷的时间成本”,导师会觉得你懂成本控制
  • 操作可行性:界面参考主流政务环保平台,常用功能放显眼位置(如“濒危生物”在首页顶部导航栏),找同学测试,10分钟学会浏览信息、收藏内容,导师直接认可

二、技术选型别跟风!这套组合稳到爆

刚开始我跟风用Spring Boot 3.x+Vue 3+Redis,结果“环保知识缓存”卡3天——Redis配置错,重启后用户收藏记录全丢😫 后来换成Java 8+Spring Boot 2.7+Vue 2+MySQL 8.0+HTML+layui+Tomcat 9,新手友好,调试效率翻两倍!

1. 技术栈核心选择(附避坑提醒)

别盲目选“最新技术”,稳定比炫酷重要!核心工具选择理由和坑点直接抄:

技术工具为啥选它避坑提醒!
Java 8语法简洁,Spring Boot 2.7兼容性最佳,学习资料多别用Java 11+!部分Spring依赖支持差,易出“类加载失败”
Spring Boot 2.7简化Spring配置,自带Tomcat,适合快速开发环保内容管理功能别用自定义启动器!新手直接用官方starter(spring-boot-starter-web、spring-boot-starter-jdbc),避免配置错误导致接口调用失败
MySQL 8.0支持事务/外键,存濒危生物、用户、收藏数据足够用,utf8mb4编码解决生僻字乱码安装设“utf8mb4”编码!我当初用默认编码,用户姓名含生僻字乱码,查2小时才好
Vue 2文档完善,组件丰富,适合开发环保信息列表、收藏页面,新手易上手别用Vue 3+Composition API!选项式API(Options API)更符合新手思维,调试时能快速定位问题
HTML+layuiHTML构建页面骨架,layui提供现成UI组件(表格、表单、弹窗),快速实现响应式布局别混用多个UI框架!我当初同时用layui和Element UI,样式冲突导致页面错乱,只留layui才顺
Tomcat 9轻量级服务器,适合中小型环保网站,与Spring Boot 2.7适配性好别用10+版本!部分Servlet类包路径变化,启动报错“Servlet初始化失败”
Eclipse 2022支持Java、Spring Boot开发,自带代码提示,插件丰富(如MyBatis Generator)别装太多插件!我当初装了10+插件,Eclipse频繁崩溃,只留“Spring Tools”“MyBatis Plugin”就够

2. 开发环境搭建(step by step 实操)

很多宝子卡“环境配置”,跟着步骤来,一次成功:

  1. 装JDK 1.8:记安装路径(如D:\Java\jdk1.8.0_301),配置“JAVA_HOME”环境变量,cmd输“java -version”显“1.8.x”即成
  2. 装Eclipse 2022:勾选“Spring Tools”插件,自动安装
  3. 装MySQL 8.0:用Navicat建数据库“environmental_protection”,编码设“utf8mb4”,排序“utf8mb4_general_ci”
  4. 建Spring Boot项目:Eclipse选“Spring Starter Project”,引入Web、MyBatis、MySQL依赖,配置application.yml(数据库连接、端口号)
  5. 配前端页面:用HTML+layui写濒危生物列表、收藏页面,Vue 2实现论坛互动功能,确保响应式布局
  6. 联调测试:在application.yml配置数据库连接(url: jdbc:mysql://localhost:3306/environmental_protection?useSSL=false&serverTimezone=UTC),写“查询濒危生物列表”接口,前端调用能显示生物名称、地区即完成

三、数据库设计:别让表关联坑了你

这是毕设“核心骨架”,我当初没关联“收藏表”和“用户表”,查“某用户的收藏记录”要写3层嵌套SQL,调试到凌晨1点😫 后来按“实体-属性-关系”设计,终于理清。

1. 核心实体&属性(附ER图技巧)

先确定“实体”(用户、濒危生物、环保健康、环境保护、论坛、公告),再想“属性”,别漏关键字段!必做17张表,直接画ER图:

  • 用户表(yonghu):id(主键)、username(账户)、password(密码,MD5加密)、yonghu_name(姓名)、yonghu_photo(头像路径)、yonghu_phone(手机号)、yonghu_email(邮箱)、sex_types(性别)、is_delete(逻辑删除:0=未删,1=已删)
  • 濒危生物表(binweishengwu):id(主键)、binweishengwu_name(生物名称)、address_types(所在地区,关联地区表)、binweishengwu_photo(图片路径)、binweishengwu_size(现存数量)、binweishengwu_content(介绍)、insert_time(添加时间)
  • 环保健康表(huanbaojiankang):id(主键)、huanbaojiankang_name(标题)、huanbaojiankang_types(分类)、huanbaojiankang_photo(封面路径)、huanbaojiankang_content(知识详情)、zan_number(点赞数)、cai_number(踩数)
  • 论坛表(forum):id(主键)、forum_name(帖子标题)、yonghu_id(关联用户表)、forum_content(内容)、forum_state_types(状态:0=待审核,1=已通过)、insert_time(发帖时间)

画ER图用Visio/亿图,记3规则:

  1. 矩形=实体(如“用户”“濒危生物”)
  2. 椭圆=属性(如用户“姓名”“手机号”,濒危生物“名称”“现存数量”)
  3. 菱形=关系(如“用户-收藏”一对多,一个用户可收藏多条内容;“濒危生物-地区”多对一,多个濒危生物可属于同一地区) 避坑提醒:别把“濒危生物图片、环保健康封面”存数据库!我当初存二进制导致数据库崩溃,改成存路径(如/static/binwei/img1.jpg、/static/health/img1.jpg)才对。

2. 表关联测试!别等编码才发现错

建表后一定要测:在“用户表”插数据(id=1,username=“user1”,yonghu_name=“李四”),“濒危生物表”插数据(id=1,binweishengwu_name=“大熊猫”,address_types=“四川”),“收藏表”插关联数据(yonghu_id=1,binweishengwu_id=1,insert_time=“2024-06-01”),用JOIN查“某用户的濒危生物收藏”:

SELECT u.yonghu_name, b.binweishengwu_name, b.address_types, b.binweishengwu_size, c.insert_time
FROM binweishengwu_collection c
JOIN yonghu u ON c.yonghu_id = u.id
JOIN binweishengwu b ON c.binweishengwu_id = b.id
WHERE u.id = 1;

能查出“用户名+生物名称+地区+现存数量+收藏时间”说明关联对;若报错“Cannot add or update a child row”,大概率外键错,赶紧检查表结构(比如yonghu_id字段类型是否和用户表id一致)。

四、功能实现:核心模块操作+页面设计

不用做所有功能!先搞定3个核心模块,答辩足够出彩,附操作逻辑和页面要点:

1. 管理员端:濒危生物管理模块(必做!)

核心是“发布+维护濒危生物信息”,重点“地区关联”和“数据合法性校验”,别漏这两步!

  • 操作逻辑
    1. 新增濒危生物前校验“生物名称非空”“现存数量≥0”“图片格式为JPG/PNG”“地区必选”,缺一项提示“完善生物信息”(我当初没加“数量≥0”校验,用户填负数,数据显示异常,补了3小时逻辑)
    2. 编辑生物信息时,若修改地区,自动更新关联的地区分类,避免数据归属错误
    3. 删除生物时,采用“逻辑删除”(加is_delete字段),保留历史数据,避免用户收藏记录失效
  • 页面设计(HTML+layui)
    • 筛选区:生物名称(模糊查)、地区(下拉选)、查询/新增按钮
    • 生物列表:显示生物名称、地区、现存数量、图片(缩略图)、添加时间,操作列“编辑/删除/查看详情”
    • 新增弹窗:生物名称(输入框)、地区(下拉选)、现存数量(数字输入框,≥0)、图片上传(文件选择器)、介绍(文本域)

2. 用户端:收藏功能模块(核心需求!)

用户核心操作是“收藏环保内容”,流程别复杂:浏览内容→点击收藏→在个人中心查看,我当初漏了“重复收藏校验”,导致用户能重复收藏同一内容,收藏列表混乱,补半天逻辑才好。

  • 操作逻辑
    1. 用户点击“收藏”时,先校验“是否已收藏该内容”(通过“用户id+内容id”查询),已收藏则提示“您已收藏此内容”,未收藏则新增收藏记录
    2. 收藏时自动记录收藏时间,个人中心按“收藏时间倒序”显示,支持按类型筛选(濒危生物/环保健康/环境保护)
    3. 取消收藏时,从收藏表中删除对应记录,实时更新个人中心收藏列表
  • 页面设计(Vue 2+layui)
    • 内容详情页:在生物/健康/环保内容详情底部,加“收藏”按钮(红色,未收藏为空心,已收藏为实心),点击后实时反馈结果
    • 个人中心收藏区:顶部分类tabs(濒危生物收藏/环保健康收藏/环境保护收藏)、列表显示收藏内容(名称、图片、收藏时间)、操作列“取消收藏/查看详情”

3. 管理员端:论坛管理模块(答辩亮点!)

体现“用户互动闭环”,导师超爱问!核心“审核帖子-回复留言-删除违规内容”,别漏“帖子状态流转”。

  • 操作逻辑
    1. 用户发布帖子后,默认状态为“待审核”(forum_state_types=0),管理员端列表默认筛选待审核数据
    2. 管理员审核时,选择“通过”(状态改为1,显示在前台)或“驳回”(状态改为2,不显示,可填写驳回原因)
    3. 支持回复用户留言,回复后用户端打开帖子时弹窗提示“您的帖子有新回复”,增强互动性
  • 页面设计
    • 论坛列表区:显示帖子标题、用户名、手机号、发帖时间、状态,操作列“查看详情/审核/回复/删除”
    • 审核弹窗:显示帖子完整内容,审核结果单选框(通过/驳回)、驳回原因文本域(仅驳回时显示)、提交按钮
    • 回复弹窗:显示用户留言内容,回复文本域、提交按钮,提交后实时显示回复内容 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

五、测试别敷衍!这3步让答辩不翻车

很多宝子觉得“功能能跑就行”,答辩时评委一测就出问题!我当初没测“用户重复发帖”,导致用户能重复发布相同内容,导师说“不符合互动逻辑”,当场扣分😫 测试要针对性做:

1. 功能测试(必测3模块)

重点测核心功能,整理测试用例表,直接填结果:

测试场景操作步骤预期结果
管理员填负数现存数量管理员新增濒危生物→名称“金丝猴”,现存数量填“-10”→提交提示“现存数量不能为负数,请重新输入!”
用户重复收藏内容用户打开“大熊猫”详情→点击“收藏”→刷新页面再次点击“收藏”提示“您已收藏此濒危生物,无需重复操作!”
管理员驳回帖子管理员选待审核帖子→选“驳回”→填写“内容违规”→提交提示“审核成功!”,用户端收到驳回通知,帖子状态更新为“已驳回”

2. 兼容性测试(容易忽略)

别只在自己电脑测!答辩评委可能用不同设备和浏览器:

  • 浏览器:Chrome、Firefox、Edge、IE11(重点测IE,HTML+layui页面兼容性差,需在index.html引入html5shiv.js修复)
  • 设备:电脑(1920×1080、1366×768分辨率)、手机(iPhone 13、华为Mate 40,测响应式布局)
  • 要求:无横向滚动条,图片加载≤2秒,收藏/发帖操作实时反馈

3. 测试报告要写好!答辩加分

整理“测试报告”,含“目的、范围、用例、结果、问题总结”:

  • 问题总结:“IE下濒危生物图片显示变形,加IE专属CSS修复;用户可重复收藏,加‘用户id+内容id’唯一索引修复;帖子无审核状态,补状态流转逻辑修复”
  • 测试结论:“核心功能无严重bug,兼容性问题已修复,满足环保信息发布、用户互动收藏需求”

六、答辩准备:3个加分小技巧

  1. 演示流程顺畅:提前录视频(怕现场崩),按“管理员发布濒危生物→用户登录收藏→用户发布论坛帖子→管理员审核帖子→用户查看回复”流程来,每个操作停顿2秒,让评委看清
  2. 讲“解决的问题”:比如“一开始濒危生物图片存数据库崩了,改成存路径解决;用户重复收藏,加唯一索引解决;IE下页面变形,加兼容代码解决”,比光说“用了Spring Boot+Vue”有亮点
  3. 准备常见问题:导师可能问“系统怎么保证用户数据安全?”,答“用户密码MD5加密;敏感操作(如删除帖子)需二次确认;用户收藏记录定期备份;数据库按权限隔离,防止越权访问”

最后:毕设通关小私心

以上就是基于HTML+Spring Boot+Vue+MySQL的环保网站从0到1的避坑干货!毕设不难,别瞎做复杂功能(如生物数量预测、智能推荐),把濒危生物管理、收藏互动、论坛审核做扎实,答辩就能过。

需要核心源码(带注释,直接能跑)、数据库脚本(含测试数据)、ER图模板的宝子,评论区扣“环保网站”,我私发你;卡在某个模块(如图片上传、收藏关联),也可以留言,看到必回!

点赞收藏,下次找流程不迷路~祝宝子们毕设顺利,轻松毕业!😘