struts2的入门介绍

本文详细介绍了Struts2框架的基本概念,包括其与Struts1的区别,以及如何从零开始搭建Struts2框架环境。通过具体步骤指导读者完成环境搭建、创建Action类、配置struts.xml和web.xml文件,最后进行测试。同时,深入解析了Struts2的访问流程和配置细节。

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

1. 对 struts2 的粗浅认识

struts2 的前身是 WebWork,是基于过滤器的,和 struts1 并没有太多的关系,因为,struts1 是基于 servlet 的,存在线程安全问题。在 struts2 身上也集成了 struts1 的优点。

2. 快速上手搭建简单的 struts2 框架

2.1 导包

首先去官网下载struts2的压缩包
在这里插入图片描述
解压后的目录
在这里插入图片描述
在eclipse中创建一个web工程,导入需要的jar包
在这里插入图片描述
提示

这些包可以通过解压 struts2 目录下 apps 中的 .war 文件获得。jar包在lib文件夹中。在这里插入图片描述

2.2 创建一个简单Action类

在 src 下,创建一个 HelloAction 类

package pers.c.test;

public class HelloAction {
	
	public String hello() {
		System.out.println("hello world");
		return "success";
	}
}

2.3 在 src 下书写 struts2.xml 文件

添加约束,这个dtd约束的位置在
在这里插入图片描述
约束可以通过先复制其中内容到自己定义的文本文档中,再修改名字和后缀可得
直接复制出来是不行的
在这里插入图片描述
注意 struts.xml 的文件名是默认的,并且区分大小写

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<package name="hello" namespace="/hello" extends="struts-default">
		<action name="HelloAction" class="pers.c.test.HelloAction" method="hello">
			<result name="success">/hello.jsp</result>
		</action>
	</package>
</struts>
2.4 在 WEB-INF 下的 web.xml 中配置 核心过滤器
  <!-- 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>
2.5 测试

在这里插入图片描述
测试的结果

3. struts2 访问流程

3.1 表面流程
客户端发来的请求
web.xml配置好的过滤器
struts.xml主配置文件

在struts.xml中
在这里插入图片描述

3.2 框架流程

在这里插入图片描述

4. 配置解释

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<!-- package:可以在package中配置很多个action
			name:标识作用,不能与其他package名重复
	   namespace:给action的访问路径定义一个命名空间
	     extends:继承一个指定package
	-->
	<package name="hello" namespace="/hello" extends="struts-default">
	
	<!-- actioin:配置action类 
			name:决定了Action访问资源名
		   class:action完整类名
		  method:指定调用哪个方法来处理请求
	-->
		<action name="HelloAction" class="pers.c.test.HelloAction" method="hello">
		
		<!-- result:结果配置
			   name:标识结果处理名称,与action调用的方法返回值对应
		 -->
			<result name="success">/hello.jsp</result>
		</action>
	</package>
</struts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值