struts2 快速入门(01)第一个 struts2 程序

本文介绍了Struts2的基础知识,包括其特点和目录结构,并详细讲解了如何从零开始搭建第一个Struts2程序,涉及web.xml配置过滤器、Action类的编写、struts.xml配置、JSP页面创建以及Tomcat的配置和运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个 struts2 程序

一、struts2 概述

  • Struts2 是 Apache 软件组织推出的一个基于 MVC 模式的轻量级 Web 框架,以理解为 WebWork 的更新产品

struts2的特点

  • 项目开源,使用及拓展方便。
  • 通过简单、集中的配置调度业务类,使配置和修改都非常容易。
  • 提供简单、统一的表达式语言访问所有可供访问的数据。
    -提供标准、强大的验证框架和国际化框架。
    -提供强大、可以有效减少页面代码的标签。
  • 提供 Exception 处理机制,并且具有良好的 Ajax 支持。
  • Result 方式的页面导航,通过 Result 标签很方便地实现重定向和页面跳转。
  • 拥有智能的默认设置,不需要另外进行繁琐的设置。使用默认设置就可以完成大多数项目程序开发所需要的功能

二、Struts2目录结构和基础JAR包介绍

1、目录结构

  • structs2 下载地址:
名称作用
apps用于存放官方提供的 Struts2 示例程序,这些程序可以作为学习者的参考资料。各示例均为 war 文件,可以通过 zip 方式进行解压。
docs用于存放官方提供的 Struts2 文档,包括 Struts2 的快速入门、Struts2 的文档,以及 API 文档等内容。
lib用于存放 Struts2 的核心类库,以及 Struts2 的第三方插件类库。
src用于存放该版本 Struts2 框架对应的源代码。

2、基础JAR包

  • 最快速的开始方式就是解压官方提供的示例程序,可以提取里面的 jar 和 配置文件复制到自己的工程中开始使用
文件名说 明
asm-3.3.jar操作 Java 字节码的类库
asm-commons-3.3.jar提供了基于事件的表现形式
asm-tree-3.3.jar提供了基于对象的表现形式
struts2-core-2.3.37.jarStruts2 框架的核心类库
xwork-core-2.3.37.jarWeb Work 核心库,Struts2 的构建基础
ognl-3.0.6.jar对象图导航语言(Object Graph Navigation Language),Struts2 框架通过其读/写对象的属性
freemarker-2.3.22.jarStruts2 标签模板使用的类库
javassist-3.11.0.GA.jarJavaScript 字节码解释器
commons-fileupload-1.4.jarStruts2 文件上传组件依赖包
commons-io-2.2.jarStruts2 的输入/输出,传文件依赖的 JAR
commons-lang-2.4.jar包含一些数据类型工具,是对 java.lang 包的增强
log4j-api-2.2.jarStruts2 的日志管理组件依赖包的 API
log4j-core-2.2.jarStruts2 的日志管理组件依赖包

三、第一个 struts2 程序

1、导入基础 jar

2、web xml 配置过滤器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <!-- 配置Struts2核心过滤器 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

3、书写 Action 类

package com.stan.action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {
    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
}

4、struts.xml配置action

<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定 Struts2 配置文件的 DTD 信息 -->
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- Struts2配置文件的根元素 -->
<struts>
    <!-- Struts2的Action必须放在指定的包空间下定义 -->
    <package name="hello" namespace="/" extends="struts-default">
        <!-- 定义 action,该 action 对应的类为 com.mengma.action.HelloWorldAction 类-->
        <action name="helloWorld" class="com.stan.action.HelloWorldAction">
            <!-- 定义处理结果和视图资源之间的映射关系 -->
            <result name="success">/success.jsp</result>
        </action>
    </package>
</struts>

5、创建必须的 jsp 页面

  • index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>首页</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/helloWorld.action">
    第一个 Struts2 程序!
</a>
</body>
</html>
  • success.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>成功页面</title>
</head>
<body>
您的第一个小程序执行成功,欢迎来到Struts2的世界!
</body>
</html>

6、开启 tomcat 显示

  • 注意 idea 的 tomcat 配置
  • 需要 jsp 的实时修改生效的话,需要如下配置

7、基本流程分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值