web实训报告总结

 人参与 | 时间:2026-10-17 07:31:30

第一次打开IDEA创建Spring Boot项目时,训报我连`pom.xml`里该加什么依赖都不知道。告总那是训报三周前的事了。现在回头看,告总web实训这门课逼着我从一个只会写`System.out.println`的训报人,变成了能独立搭出一个带数据库交互的告总完整Web应用的人。这个过程不轻松,训报但值得记下来。告总

环境配置:第一道坎

实训第一天就卡住了。训报JDK版本和Maven版本不匹配,告总控制台报了一堆红字,训报我盯着看了半小时才反应过来是告总环境变量的问题。后来换成JDK 17配Maven 3.9,训报终于跑通了。告总这件事教会我一个道理:别急着写代码,训报先把工具链理顺。Tomcat的配置也是类似情况,端口冲突、web.xml路径写错,每个小问题都能耗掉一节课的时间。但踩过一遍之后,这些东西就长在脑子里了。

前端部分:从静态页面到数据交互

HTML和CSS之前接触过,但写出来的页面总有种“上世纪”的感觉。这次实训要求做一个用户管理界面,我才认真学了Flexbox布局,把表格和表单排得像样了一点。JavaScript那边,一开始用原生fetch发请求,回调写得乱七八糟。后来换成Axios,代码清爽了不少。印象最深的是做表单验证,前端校验和后端校验都得写,刚开始觉得重复,后来才理解——前端校验是给用户看的,后端校验是给安全兜底的,两者缺一不可。

后端逻辑:Servlet到Spring Boot的过渡

课程前期用Servlet写了一个简单的登录功能。`doGet`和`doPost`方法里手动解析参数、手动设置响应头,写完之后觉得挺有成就感。但等到用Spring Boot重写同样的功能时,那种对比太强烈了。一个`@RestController`加`@RequestMapping`就搞定的事,之前要写几十行。这不是说Servlet没用了,而是理解了框架到底帮我们省了什么。MyBatis那块也花了功夫,最开始XML映射文件里的`resultMap`和`parameterType`总是对不上,报错信息又不够直观。后来我养成了一个习惯:每写一个Mapper方法,先在数据库客户端里把SQL跑一遍,确认没问题再往XML里搬。

数据库连接与CRUD

实训用的MySQL 8.0。连接池配的是HikariCP,Spring Boot默认自带,这一点挺省心。真正麻烦的是CRUD操作中的细节处理——比如插入数据后要返回自增主键,比如分页查询时`LIMIT`和`OFFSET`的计算。我做的那个图书管理系统,光是“按条件模糊查询”这个功能就改了四遍。第一版SQL拼接有注入风险,第二版用了``标签但逻辑写反了,第三版能查但分页不对,第四版才勉强能用。这个过程让我对“写代码”和“写能用的代码”之间的差距有了切身体会。

调试与部署

项目最后要打包成war丢到Tomcat里跑。`mvn clean package`这条命令我敲了不下二十次。有一次打包成功但访问404,查了半天发现是`spring-boot-starter-tomcat`的scope没设成`provided`。还有一次数据库连接池报错,原因是部署环境的配置文件没改,还在连本地的localhost。这些坑很小,但每一个都能让你在答辩前夜睡不着觉。部署成功那一刻,浏览器里跳出登录页面的瞬间,确实挺爽的。

一些真实的感受

三周实训没法让你变成Web开发高手,但它能让你知道一个完整的Web应用长什么样。以前看教程觉得什么都懂,自己动手才发现到处都是知识盲区。另一个收获是查文档的能力——Spring的官方文档、MyBatis的中文文档、Stack Overflow上的老帖子,这些比任何教程都管用。如果非要说有什么遗憾,就是时间太短,没来得及学Redis和消息队列。不过基础打牢了,后面加东西只是时间问题。

代码已经提交到GitHub了,仓库地址就不贴了,写得还不够好。但至少现在打开IDEA新建项目时,我不再发怵了。

顶: 16踩: 7516