目录
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 表面流程
在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>