本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Struts2是一个功能强大的Java Web框架,它基于MVC架构,旨在提供灵活和可扩展的Web应用解决方案。本文将指导你如何搭建Struts2开发环境,从基础软件安装到配置web.xml和Struts2的Action,以及编写Struts2配置文件和JSP页面的创建。对于希望深入学习Struts2框架的读者,了解构建工具如Maven或Gradle,以及框架内的拦截器、结果类型和OGNL表达式等高级概念将是必要的补充。通过实践,你将熟悉整个Struts2应用的开发流程。 struts2环境搭建

1. Java开发环境配置

在Java开发过程中,拥有一个良好的开发环境对于提高开发效率和代码质量至关重要。本章将指导你完成Java开发环境的搭建过程,包括JDK的安装、环境变量的配置以及验证开发环境是否配置正确。

1.1 JDK安装步骤

首先,确保下载到适合您操作系统的Java Development Kit (JDK)版本。以下是安装JDK的基本步骤:

  1. 访问Oracle官网或其他JDK提供商下载JDK安装包。
  2. 执行安装程序并遵循安装向导完成安装。
  3. 安装过程中,确保记住安装路径,这将用于后续配置环境变量。

1.2 配置环境变量

接下来,设置环境变量是确保JDK正确安装并能被系统识别的关键步骤。对于Windows系统,你需要配置以下环境变量:

  • JAVA_HOME :指向JDK安装目录的路径。
  • PATH :添加 %JAVA_HOME%\bin 到现有路径中,以方便从任何目录运行Java工具。

对于Linux或macOS系统,则需要在你的shell配置文件(如.bashrc或.zshrc)中添加以下行:

export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH

1.3 验证环境配置

完成以上步骤后,打开命令行界面,输入 java -version 以及 javac -version 来检查Java和编译器版本。如果显示了正确的版本信息,那么恭喜你,Java开发环境已经成功搭建完毕。

本章通过详细说明JDK的安装和环境变量配置,为后续的Java开发打下了坚实的基础。下一章我们将继续安装并配置Apache Tomcat服务器,为Java Web应用提供运行平台。

2. Apache Tomcat的安装与配置

Apache Tomcat是广泛使用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)技术。本章节详细介绍了如何安装和配置Tomcat服务器,为运行和部署Java Web应用程序做好准备。

2.1 Tomcat服务器的安装步骤

2.1.1 下载Tomcat服务器软件

要安装Tomcat,首先需要从其官方网站下载服务器软件。Tomcat有多个版本,根据开发需求选择相应的版本号。以下是下载步骤:

  1. 访问 Apache Tomcat 官方网站。
  2. 选择“Downloads”部分找到合适的Tomcat版本。
  3. 点击对应版本的“Binary Distributions”下载zip文件。
2.1.2 安装Tomcat服务器

下载完成后,解压zip文件到选择的目录,这就是Tomcat的安装目录,以下是在Windows系统下的安装示例:

  1. 打开下载的Tomcat zip文件(例如: apache-tomcat-9.0.39.zip )。
  2. 将压缩包解压到您选择的安装目录(例如: C:\ApacheTomcat9.0.39 )。
  3. 进入该目录,你会看到几个子目录,例如: bin , lib , webapps , 等。

2.2 Tomcat服务器的配置

为了确保Tomcat能按照您的需求运行,您可能需要进行一些基本配置。

2.2.1 配置环境变量

为了方便使用Tomcat的命令行工具,您需要设置一些环境变量。以下是在Windows系统下的设置步骤:

  1. 右键点击“计算机”选择“属性”。
  2. 选择“高级系统设置”,然后点击“环境变量”按钮。
  3. 在“系统变量”区域点击“新建”。
  4. 设置变量名为 CATALINA_HOME ,变量值为Tomcat安装的路径(例如: C:\ApacheTomcat9.0.39 )。
  5. 打开系统的Path变量,点击“新建”,添加 %CATALINA_HOME%\bin
2.2.2 配置Tomcat服务器的端口和默认主页

Tomcat默认使用8080端口,如需更改,可以在 conf 目录下的 server.xml 文件中配置。

  1. 打开 conf/server.xml 文件。
  2. 找到 <Connector> 元素,修改 port 属性以更改端口,例如将8080改成8081。

默认主页的配置是在 conf/web.xml 文件中设置的。若要设置默认主页,可以在 <welcome-file-list> 标签中添加或修改文件名。

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
</welcome-file-list>

通过以上步骤,您已经成功安装并配置了Apache Tomcat服务器,接下来您可以通过Tomcat启动您的Java Web应用程序了。

在这一章节中,您学习了如何下载和安装Tomcat服务器,配置了环境变量以及修改了默认端口和主页。这些是部署Java Web应用程序的基础,对于接下来章节中深入讨论的Struts2框架及其他Java Web技术的学习打下了坚实的基础。

3. Struts2框架的搭建

3.1 Struts2核心库的下载与配置

3.1.1 获取Struts2核心库

为了开始搭建Struts2框架,首先需要获取Struts2的核心库文件。Struts2是一个成熟的Web应用框架,其核心库可以通过Apache官方网站下载,或者通过集成的开发环境(IDE)如IntelliJ IDEA或Eclipse的插件市场进行下载。以下是下载Struts2核心库的步骤:

  1. 访问 Apache Struts官方网站
  2. 在首页找到下载区域。
  3. 根据需要选择合适的版本,点击下载链接。
  4. 下载完成后,解压缩得到的 struts-版本号.zip 文件,解压后的文件夹将包含所有Struts2框架所需的核心库文件( .jar 文件)。

3.1.2 将Struts2核心库添加到类路径中

下载并解压Struts2核心库后,需要将其添加到Java项目的类路径中,以便在项目中使用Struts2框架。添加方式有以下几种:

  1. 手动添加 : 在IDE中打开项目的库管理器,例如在Eclipse中,选择项目右键点击,进入 Properties -> Java Build Path -> Libraries ,然后点击 Add External JARs... ,选择解压后的Struts2核心库目录中的 .jar 文件添加到项目中。

  2. 使用构建工具 : 如果使用Maven管理项目,可以在项目的 pom.xml 文件中添加Struts2的依赖配置。例如:

xml <dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>版本号</version> </dependency> <!-- 其他依赖 --> </dependencies>

对于Gradle项目,则需要在 build.gradle 文件中添加:

groovy dependencies { implementation 'org.apache.struts:struts2-core:版本号' // 其他依赖 }

  1. 使用构建脚本 : 如果项目使用了如Gradle或Maven这样的构建自动化工具,也可以在构建脚本中指定Struts2的依赖,当执行构建命令时,这些工具会自动下载并将其添加到项目的类路径中。

无论使用哪种方式,添加了Struts2核心库之后,开发者就可以开始创建Struts2的Action类和配置struts.xml文件了。

3.2 Java Web项目的创建与配置

3.2.1 使用IDE新建Java Web项目

为了开发Web应用程序,首先需要使用集成开发环境(IDE)创建一个新的Java Web项目。以Eclipse为例,以下是创建项目的步骤:

  1. 打开Eclipse,点击菜单栏中的 File -> New -> Dynamic Web Project
  2. 在弹出的 New Dynamic Web Project 窗口中,填写项目的名称和选择目标运行时环境。
  3. 点击 Next ,在接下来的页面中可以配置项目的 Content Directory
  4. 再次点击 Next ,可以选择添加库文件,比如JSTL库和Struts2核心库。
  5. 为项目选择合适的Java EE规格,并点击 Finish

创建完成后,Eclipse会自动生成基本的Web应用结构,包括 web.xml 文件和 WEB-INF 目录等。

3.2.2 将Struts2库添加至项目

在创建了Java Web项目之后,需要将Struts2库添加到项目中,以便能够在项目中使用Struts2框架。具体操作步骤如下:

  1. 打开项目,找到项目中的 WEB-INF/lib 文件夹。
  2. 如果之前是通过下载 .zip 文件手动解压的Struts2核心库,将解压后的所有 .jar 文件复制到该文件夹。
  3. 如果是通过Maven或Gradle管理依赖,确保在 pom.xml build.gradle 文件中添加了依赖,并刷新项目以确保所有依赖被正确下载并添加到类路径中。
  4. 为了验证库是否添加成功,可以在项目上右键点击,选择 Build Path -> Configure Build Path ,在弹出的窗口中查看 Libraries 标签页,确保Struts2的核心库已经出现在列表中。

添加了Struts2核心库之后,就可以开始配置Struts2相关的文件,如 struts.xml 配置文件,并编写Struts2的Action类了。

<struts>
    <constant name="struts.convention.action.suffix" value="Action" />
    <constant name="struts.convention.action.packages" value="com.example.actions" />
    <!-- 其他配置 -->
</struts>

通过这些配置,Struts2框架将能够识别并处理特定的请求,并将它们转发给相应的Action类。

4. Struts2项目结构的深入配置

深入配置Struts2项目结构是在构建Java Web应用程序中实现复杂交互的关键步骤。本章节将重点关注web.xml文件的配置要点,Struts2 Action的创建与配置,确保开发者能够全面理解并掌握Struts2框架的高级配置。

4.1 web.xml文件的配置要点

web.xml文件是Java Web应用程序的核心配置文件,它负责描述应用程序的部署细节,包括Servlet和过滤器的配置等。对于Struts2框架,web.xml的配置尤为关键,因为它涉及到了Struts2核心过滤器StrutsPrepareAndExecuteFilter的配置,这个过滤器是Struts2框架拦截请求和处理响应的核心组件。

4.1.1 配置Struts2过滤器和Struts2拦截器链

Struts2框架的请求处理流程始于web.xml文件中配置的StrutsPrepareAndExecuteFilter过滤器。这个过滤器会拦截所有的用户请求,并将请求传递给Struts2框架进行处理。

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在上述配置中, <filter-name> 标签定义了过滤器的名称, <filter-class> 指定了过滤器的实现类。 <filter-mapping> 标签定义了过滤器映射, <url-pattern> 指定了哪些URL需要经过这个过滤器进行处理。在这个例子中, /* 意味着所有的请求都将被拦截。

4.1.2 web.xml文件的其他必要配置

除了Struts2核心过滤器的配置外,web.xml文件还包含其他多种配置,这些配置对于应用程序的运行至关重要。例如,我们可能需要配置欢迎文件列表(welcome-file-list),它定义了当用户访问应用的根目录时,默认加载的页面。

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

这里, <welcome-file-list> 标签包裹了 <welcome-file> 标签,后者指定了欢迎文件的名称。当用户访问Web应用的根目录时,服务器会查找并加载 index.jsp 作为默认页面。

接下来,我们可能需要配置错误页面(error-page),它定义了当应用程序抛出特定异常或发生特定状态码错误时,应该显示的页面。

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error.jsp</location>
</error-page>

<error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
</error-page>

在这个例子中, <exception-type> 标签指定了当抛出 java.lang.Throwable 异常时应该显示的页面, <error-code> 标签指定了当发生404错误时应重定向到的页面。 <location> 标签定义了错误页面的位置。

4.2 Struts2 Action的创建与配置

Struts2 Action是处理用户请求的主要组件。开发者需要创建Java类,继承自 ActionSupport 类或其他Struts2提供的类,并实现相关的业务逻辑。一旦Action类创建完成,接下来就需要在Struts2的配置文件 struts.xml 中进行配置。

4.2.1 实现Struts2 Action类

首先,创建一个Action类,这个类包含业务逻辑和与视图层交互所需的数据。

import com.opensymphony.xwork2.ActionSupport;

public class MyAction extends ActionSupport {
    private String name;
    private String message;

    // Getters and Setters
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getMessage() { return message; }
    public void setMessage(String message) { this.message = message; }

    public String execute() {
        // Business Logic Here
        message = "Hello, " + name + "!";
        return SUCCESS;
    }
}

在这个 MyAction 类中,我们有一个 execute 方法,它包含了处理请求的业务逻辑。 name 属性被用于接收来自视图层的数据, message 属性被用于返回计算或处理的结果。

4.2.2 在struts.xml中配置Action映射

struts.xml 文件中,我们需要配置一个Action映射,这样Struts2框架才能知道如何将用户的请求映射到我们的 MyAction 类上。

<struts>
    <package name="default" extends="struts-default">
        <action name="myAction" class="com.example.MyAction">
            <result name="success">/success.jsp</result>
            <result name="input">/input.jsp</result>
        </action>
    </package>
</struts>

这里, <action> 标签定义了Action的名称 myAction ,以及对应的处理类 class 属性。 <result> 标签定义了当Action执行成功(即返回 SUCCESS )时应该跳转到的页面。 /success.jsp 是成功处理请求后,用户应该看到的页面。如果用户提交了请求,但输入不符合要求(返回 INPUT ),则会跳转到 /input.jsp 页面。

通过以上配置,我们搭建了Struts2 Action的基本框架,实现了与视图层的交云和业务逻辑的处理。这仅仅是个开始,高级特性和拦截器的使用将在后续的章节中进一步介绍。

5. Struts2实战操作与高级特性

5.1 JSP页面与Struts2的交互

在本章节中,我们将深入了解如何将Struts2框架与JSP页面进行交互,以及如何在JSP页面中利用Struts2提供的标签库来丰富我们的用户界面。

5.1.1 创建JSP页面

为了展示JSP与Struts2的交互,首先需要创建一个简单的JSP页面。这里以一个登录页面为例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
    <h2>Login Form</h2>
    <form action="login.action" method="post">
        Username: <input type="text" name="username" /><br/>
        Password: <input type="password" name="password" /><br/>
        <input type="submit" value="Submit" />
    </form>
</body>
</html>

在这个示例中,当用户填写用户名和密码后点击提交按钮,表单数据将发送到 login.action ,这需要我们在Struts2的配置文件 struts.xml 中进行相应的映射。

5.1.2 在JSP页面中使用Struts2标签

Struts2提供了一套丰富的标签库,能够帮助开发者更快地构建动态网页。在JSP页面中使用Struts2标签需要在页面顶部引入标签库:

<%@ taglib prefix="s" uri="/struts-tags" %>

接下来,我们可以使用Struts2标签来实现例如表单数据回显、条件判断、循环显示数据等复杂功能。例如,使用 <s:form> 标签创建一个表单,并用 <s:textfield> 等标签简化输入字段的创建:

<s:form action="login.action">
    <s:textfield name="username" label="Username" />
    <s:password name="password" label="Password" />
    <s:submit value="Submit" />
</s:form>

在上述代码中, <s:form> 标签会自动根据提交地址生成正确的 <form> 标签; <s:textfield> <s:password> 标签用于生成输入字段,并且这些标签会根据 Action 中相应的属性自动进行数据回显。

5.2 构建工具及高级特性的探索

5.2.1 利用构建工具简化项目构建

Struts2项目可以借助Maven或Gradle这样的构建工具来简化依赖管理和项目构建过程。这里以Maven为例:

首先,在项目的 pom.xml 文件中添加Struts2依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.23</version>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>

然后,可以使用Maven的生命周期命令(如 mvn compile mvn package 等)来自动化构建过程,这将大大简化项目的构建和维护工作。

5.2.2 探索Struts2的高级特性,如拦截器、结果类型等

Struts2的高级特性提供了强大的扩展点,使得框架更加灵活和可扩展。拦截器和结果类型就是其中的两个特性。

拦截器

拦截器是一种特殊的拦截请求的组件,可以看作是Struts2的中间件。我们可以自定义拦截器来执行诸如权限检查、日志记录、数据验证等预处理和后处理操作。以下是定义一个简单的权限拦截器的示例:

public class PermissionInterceptor implements Interceptor {
    public void destroy() {
        // 清理资源
    }

    public void init() {
        // 初始化资源
    }

    public String intercept(ActionInvocation invocation) throws Exception {
        if (!UserUtils.isAuthenticated()) {
            return "login";
        }
        return invocation.invoke();
    }
}

struts.xml 中配置该拦截器:

<interceptors>
    <interceptor name="permission" class="com.example.PermissionInterceptor" />
    <interceptor-stack name="defaultStack">
        <interceptor-ref name="defaultStack" />
        <interceptor-ref name="permission" />
    </interceptor-stack>
</interceptors>
<action name="someAction" class="com.example.SomeAction">
    <interceptor-ref name="defaultStack" />
    <result name="success">/success.jsp</result>
</action>
结果类型

结果类型定义了Action执行完成后如何处理返回结果。例如,我们可以自定义一个结果类型来展示一个JSON响应,而不是默认的JSP页面。

<result-types>
    <result-type name="json" class="com.example.JsonResult" />
</result-types>

上述自定义的 json 结果类型可以这样使用:

<action name="getUser" class="com.example.GetUserAction">
    <result name="success" type="json">
        <param name="root">user</param>
    </result>
</action>

在这个配置中,当 getUser Action执行成功时,会返回JSON格式的数据,其中 user 对象将被序列化为JSON格式的响应体。

在本章节中,我们通过实战操作深入了解了JSP页面与Struts2框架的交互方法,并且探索了Struts2的构建工具使用和高级特性,例如拦截器和自定义结果类型。这些高级特性的掌握,可以使开发者更有效地利用Struts2框架来构建复杂、可扩展的Web应用。在接下来的章节中,我们将继续深入探讨Struts2框架的其他高级配置和优化策略。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Struts2是一个功能强大的Java Web框架,它基于MVC架构,旨在提供灵活和可扩展的Web应用解决方案。本文将指导你如何搭建Struts2开发环境,从基础软件安装到配置web.xml和Struts2的Action,以及编写Struts2配置文件和JSP页面的创建。对于希望深入学习Struts2框架的读者,了解构建工具如Maven或Gradle,以及框架内的拦截器、结果类型和OGNL表达式等高级概念将是必要的补充。通过实践,你将熟悉整个Struts2应用的开发流程。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

Logo

一站式 AI 云服务平台

更多推荐