1. Java Web框架的进化之路:从Servlet到Spring生态
2003年我第一次用纯Servlet写用户登录功能时,光是一个表单提交就写了200多行代码。那时Struts 1.x刚发布不久,当我看到它用struts-config.xml配置就能自动完成表单映射时,简直像发现了新大陆。如今二十年过去,Java Web框架已经历了三代技术更迭,但很多新人仍不理解为什么我们要用这些框架。今天我就用实际项目经验,带你看透框架存在的本质价值。
在裸写Servlet的时代,我们需要手动处理的事情包括:解析HTTP请求参数、维护会话状态、处理文件上传、实现页面跳转路由、防范CSRF攻击等。这些重复性工作要占用70%以上的编码时间,而真正的业务逻辑反而被淹没在样板代码中。框架的出现本质上是为了解决两个核心问题:标准化常见场景的处理模式(如MVC分层),以及通过约定优于配置(Convention over Configuration)减少重复劳动。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 三大框架核心价值解析
2.1 Struts:MVC模式的标准化实践
Struts 1.x在2001年发布时带来了几个革命性特性:
- 前端控制器模式:所有请求通过ActionServlet统一分发
- 声明式导航:struts-config.xml中定义action到页面的映射
- 自动表单填充:ActionForm对象自动绑定请求参数
xml复制<!-- 典型Struts配置示例 -->
<action-mappings>
<action path="/login"
type="com.example.LoginAction"
name="loginForm"
scope="request"
input="/login.jsp">
<forward name="success" path="/welcome.jsp"/>
</action>
</action-mappings>
重要提示:Struts 1.x的Action是单例模式,必须注意线程安全问题。我在2005年就遇到过因为成员变量未初始化导致的并发bug。
