引言
Struts2是一个强大的Java Web框架,它可以帮助开发者快速构建企业级的应用程序。在这个教程中,我们将从零开始,一步步构建一个Struts2入门级的Web项目,并对其源码进行详细解析。通过这个实战过程,你将能够深入了解Struts2的工作原理,并掌握如何在实际项目中应用它。
环境准备
在开始之前,我们需要准备以下环境:
- Java Development Kit (JDK):建议使用JDK 1.8或更高版本。
- Integrated Development Environment (IDE):推荐使用Eclipse或IntelliJ IDEA。
- Web服务器:可以选择Tomcat、Jetty或GlassFish等。
- Struts2框架:可以从Apache官网下载最新版本的Struts2。
创建项目
- 创建Maven项目:在IDE中创建一个新的Maven项目,并添加以下依赖到
pom.xml文件中。
<dependencies>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.16</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
- 创建Web资源:在项目结构中创建
src/main/webapp目录,并在其中创建WEB-INF目录。在WEB-INF目录下创建web.xml文件,并添加以下内容。
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>struts2</servlet-name>
<servlet-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>struts2</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
编写控制器
- 创建控制器类:在
src/main/java目录下创建一个名为HelloAction的类,并实现Action接口。
package com.example;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
public String execute() {
return SUCCESS;
}
}
- 配置控制器:在
src/main/webapp/WEB-INF/classes目录下创建一个名为struts.xml的文件,并添加以下内容。
<struts>
<package name="default" extends="struts-default">
<action name="hello" class="com.example.HelloAction">
<result name="success">/hello.jsp</result>
</action>
</package>
</struts>
编写视图
- 创建JSP页面:在
src/main/webapp目录下创建一个名为hello.jsp的文件,并添加以下内容。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
运行项目
- 启动Web服务器:启动Tomcat或其他Web服务器。
- 访问项目:在浏览器中输入
http://localhost:8080/your-project-name/hello,你应该能看到“Hello World!”的提示。
源码解析
在这个入门级项目中,我们使用了Struts2框架来处理请求。以下是源码解析的关键点:
- Action类:
HelloAction类实现了Action接口,并重写了execute方法。当用户访问/hello路径时,框架会调用这个方法。 - struts.xml:这个文件定义了Struts2框架的配置,包括控制器类、视图页面等。
- StrutsPrepareAndExecuteFilter:这个过滤器负责解析请求,并调用相应的控制器类。
通过这个实战教程,你将能够掌握从零开始构建Struts2入门级Web项目的方法。接下来,你可以继续深入学习Struts2的高级功能,如拦截器、国际化等。祝你学习愉快!
