版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011301372/article/details/84961720
Struts2以Webwork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为Webwork的更新产品。
Struts2是一个基于MVC设计模式的Web层框架。
MVC 和JavaEE的三层结构
- MVC设计模式,是由一些网站的开发人员提出来的
- JavaEE三层结构:SUN公司为EE开发划分的结构
环境准备
创建web项目,编写jsp的页面,编写超链接,点击超链接发送请求,请求服务器,让服务器的方法去执行。
下载Struts2的开发包
- hettp://struts.apache.org/—官网地址
解压Struts-2.3.24-all.zip包
- apps----Struts2 框架提供了一些应用
- libs----Struts2框架开发的jar包(xxx.war—>(修改后缀名)xxx.zip解压后,查找web-inf下lib中的jar包)
- docs----Struts2 框架开发文档
- src----Struts2框架源码
引入需要开发的jar包
- Struts2 框架的开发jar包非常多,并不是所有都是必须要引入的,有一些必须要导入的jar包,这些jar包可以从Struts2提供的应用中查找,
- 资料中apps目录,找到Struts-blank.war应用,war包和zip包的压缩格式是一样的,手动修改后缀名后解压。
- 找到解压后的应用,打开web-INF/lib目录下所有的jar包,复制到工程就可以了。
需要配置Struts2的前端控制器,注意:这一步必须要做,是Struts2的核心控制器。
- Struts2的前端控制器就是一个过滤器,需要在web.xml中进行配置。
- 前端控制器的类的路径和名称:arg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- 具体配置如下
<filter>
<filter-name>struts2</filter-name>
<!--选中StrutsPrepareAndExecuteFilter右键,Copy reference-->
<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>
Struts的配置
配置文件名称是struts.xml(名称必须是struts.xml)
在src下引入struts.xml配置文件,(配置文件的路径必须在src的目录下)
配置如下
<?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="default" namespace="/" extends="struts-default">
<!--配置Action-->
<!--/hello.action-->
<action name="hello" class="com.zst.action.HelloAction" method="sayHello"/>
</package>
</struts>
跳转页面
public class HelloAction {
//Action中的方法签名是有要求的:
//public共有的
//必须有返回值,必须是String类型的
//方法的名称可以任意的,但是不能有参数列表
public String sayHello(){
System.out.println("hello Struts2");
//页面跳转
//1 返回字符串
//2 struts.xml中配置
return "ok";
}
}
<!--配置Action-->
<!--/hello.action-->
<action name="hello" class="com.zst.action.HelloAction" method="sayHello">
<!--选中suc.jsp 右键 Copy relative path 复制路径-->
<!--路径的写法:在struts2框架中,不管是转发还是重定向,都不用写项目名-->
<result name="ok" type="">demo1/suc.jsp</result>
</action>
执行的流程
启动服务器的时候,核心过滤器会被创建,init()方法初始化会执行,会加载配置文件。
引入约束与导入源代码
先找到struts.xml的配置文件,复制http://struts.apache.org/dtds/struts-2.3.dtd(不要双引号)
选择window—首选项—搜索xml—选择xml Catalog
选择添加按钮
- key type 选择URI
- key 的位置就是复制的路径
http://struts.apache.org/dtds/struts-2.3.dtd- Location要在本地能找到struts22-2.3.dtd的真实文件,点击File System 去资料中查找
如果想查看源代码,就选择资料 /struts2/struts-2.3.24-all.zip