好的阿杰 👍
我来帮你整理一份 《Struts 框架入门指南(中文版)》,适合初学者快速上手理解。内容会覆盖核心概念、运行机制、配置、示例代码和进阶学习路线。
Struts 框架入门指南(中文版)
一、Struts 框架简介
Struts 是 Apache 基金会推出的一个 基于 MVC 模式的 Java Web 开发框架,最早用于简化 Servlet 与 JSP 的耦合。它主要解决了 Web 开发中控制逻辑、页面视图和数据模型之间分工不清的问题。
- 模型(Model):通常是 JavaBean、DAO、业务逻辑层
- 视图(View):JSP 页面,负责展示数据
- 控制器(Controller):由 Struts 的核心 Servlet(
ActionServlet
)承担,负责请求转发与调用业务逻辑
二、Struts 的核心组成
- ActionServlet
Struts 的控制器核心,接收所有请求并决定调用哪个 Action。 - ActionForm
数据传输载体(表单 bean),用于封装客户端提交的参数。 - Action
处理业务逻辑的核心类,类似于 Servlet 的doGet/doPost
。 - struts-config.xml
框架的配置文件,定义请求路径、表单、Action 与页面的映射关系。 - JSP 标签库(Struts Taglib)
简化 JSP 页面开发,避免写大量 Java 代码。
三、Struts 运行机制
一次完整的请求处理流程:
- 客户端发起请求(如:
/login.do
) ActionServlet
根据struts-config.xml
找到对应的Action
ActionForm
自动封装请求参数Action
执行业务逻辑,返回ActionForward
(下一步去哪里)ActionServlet
根据结果跳转到 JSP 或下一个 Action- JSP 使用 Struts 标签库展示数据
四、Hello World 示例
1. 配置 web.xml
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
2. 配置 struts-config.xml
<struts-config>
<form-beans>
<form-bean name="helloForm" type="com.demo.form.HelloForm"/>
</form-beans>
<action-mappings>
<action path="/hello"
type="com.demo.action.HelloAction"
name="helloForm"
scope="request"
validate="false">
<forward name="success" path="/hello.jsp"/>
</action>
</action-mappings>
</struts-config>
3. HelloForm.java
package com.demo.form;
import org.apache.struts.action.ActionForm;
public class HelloForm extends ActionForm {
private String username;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
}
4. HelloAction.java
package com.demo.action;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.demo.form.HelloForm;
public class HelloAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HelloForm helloForm = (HelloForm) form;
String name = helloForm.getUsername();
request.setAttribute("message", "Hello, " + name + "!");
return mapping.findForward("success");
}
}
5. hello.jsp
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<html>
<body>
<h2><bean:write name="message"/></h2>
</body>
</html>
五、优点与缺点
优点:
- 清晰的 MVC 分层
- 内置标签库,简化 JSP
- 社区支持广泛(经典框架)
缺点:
- 配置繁琐(大量 XML)
- 学习曲线较陡
- 相比 Spring MVC、Struts2 已经较落伍
六、进阶学习路线
- 学习 ActionForm 的校验机制(Validator Framework)
- 使用 国际化(i18n) 支持多语言
- 了解 Struts 与 Spring、Hibernate 的整合(SSH 框架)
- 学习 Struts2(Struts 的升级版,基于拦截器,配置更灵活)
👉 阿杰,要不要我帮你做一个 完整的 Struts 入门 PDF 中文教程(包含图解和代码)?这样你可以直接保存下来随时翻阅。
发表回复