前言:
当前你们对“apache运行struts”大体比较重视,小伙伴们都需要了解一些“apache运行struts”的相关资讯。那么小编同时在网摘上网罗了一些关于“apache运行struts””的相关内容,希望兄弟们能喜欢,咱们一起来了解一下吧!Struts2的使用
2.1 使用步骤
1)导入strust2的支持jar包
commons-beautils [beanutils工具包]
commons-filupload.ajr [文件上传]
commons-io.jar
commons-lang [struts2对java.lang.*类的支持]
freemarker.jar [视图显示技术]
javassit [struts2对字节码运算的支持]
ognl.jar [struts2对ognl表达式的支持]
struts2-core.jar [ struts2的核心包 ]
xwork-core.jar [webwork框架的支持,struts2的前身就是webwork(对webwork的封装)]
2)配置启动的全局的过滤器(Filter) - 和ActionServlet类似!!!
在web.xml中配置
<!-- 配置启动strut2的全局过滤器 -->
<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>
3)编写不同的业务Action类,编写不同业务方法。默认execute方法。
public class LoginAction implements Action{
//默认方法
public String execute() throws Exception {
System.out.println("执行了LoginAction的execute方法");
return "success";
}
}
4)在src目录下(类路径的根目录下),新建一个struts.xml,配置Action对象
<struts>
<package name="xxx" extends="struts-default">
<!-- 配置Action ;
<action name="login" class="gz.itcast.action.LoginAction">
<result name="success" type="redirect">/index.jsp</result>
</action>
</package>
</struts>
5)访问Action的业务方法
2.2 struts2框架的作用
strurs2是基于MVC开发模型的web层框架。
struts1也是MVC开发模式的框架。struts2并不是struts1的升级版。
struts2是基于webwork的升级版。struts2=webwork+sturts1
struts2的具体功能:
请求数据封装
简化国际化
简化文件上传
后台数据校验
......
2.3 Struts2的执行过程
项目启动:
1)创建核心过滤器StrutsPrepareAndExecuteFilter对象
2)执行核心过滤器的init方法
读取了依次以下的配置:
struts-default.xml [struts2框架的默认配置文件(不需要自定修改)]
struts-plugin.xml [struts2的插件配置文件]
struts.xml [我们写的业务配置文件(包含配置的Action)]
访问资源:
3) 在内存中查询对应的Action配置,得到class内容,创建Action对象。
4)读取Action配置的method内容,执行Action对象对应的方法。
2.4 struts-default.xml文件的详解
1)声明struts2框架运行过程中使用到的一些对象
<bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" />
2)默认包,包名叫struts-default(注意:我们自己写的package必须继承这个默认包,只有继承了这个默认包才可以使用该默认包下的功能)
<package name="struts-default" abstract="true">
2.1 )跳转类型:
常用的跳转类型
redirect: 重定向到页面
dispatcher: 转发到页面
redirectAction: 重定向到Action
chain: 转发到Action
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
2.2 ) 声明拦截器(Interceptor)
struts2默认的拦截器(32个): 完成strutrs2的核心功能。(请求封装,文件上传,国际化..)
拦截器(Intercptor) vs 过滤器(Filter)
过滤器: 可以过滤任何类型的请求(html、servlet、jsp)和响应。加入通用的代码逻辑。
拦截器: 是sturts2的特有功能。只能过滤Action!!在执行Action的时候加入通用的代码。
2.3) 声明拦截器栈 (<interceptor-stack name="basicStack">)
默认拦截器:
<interceptor-stack name="defaultStack"> (18个拦截器)
2.4 ) 默认包当前使用的拦截器:
<default-interceptor-ref name="defaultStack"/>
注意:
我们写的包(package)就是继承struts-default默认包的,那么就继承了默认的18个拦截器
2.5) 当前默认包下的默认Action
<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
2.5 struts.xml文件详解
该文件是开发者自行配置的业务配置文件。(关键是Action的配置)
1)包(package),用于管理Action,一般可以按模块划分包!!
package: 代表一个包。管理action配置。在用一个包下面不能有同名的action
name: 包名.在一个项目中不能出现同名的包。
extends: 继承。类似于类的继承。如果一个包继承另一个包,那么就会把父包的功能继承下来。
我们开发的包就必须继承struts-default包。
namespace: 名称空间。区分不同的包的访问路径。默认值 “/”
用户访问Action的路径搜索规则:
用户访问:
先搜索: 没有, 有就返回
接着搜索: 没有, 有就返回
再搜索 : 有, 有就返回 (为止)
abstract: 表示当前包是否抽象。如果当前包是抽象包,那么不能含有action. 抽象包中一般用来定义拦截器,公共视图,不做具体的业务。
2)Action和result的配置
action配置:
name: action的名称。用于访问该Action的路径
class: Action业务对象的类名。一定是全名(包名+类名),这里struts2是用反射构造Action对象的
method: 执行的业务方法。不写默认值 execute
result配置:
name: 视图的标记。在一个Action中名称不要重复!
type: 跳转的类型。
redirect: 重定向
dispatcher: 转发(默认值)
redirectAction: 重定向到Action
chain: 转发到Action。可以在不同Action中通过request共享数据
stream: 用在下载文件的时候。
文本内容: 跳转到的页面或者Action
3)可以通过划分不同的xml文件来管理package
<!-- 包含读取其他xml文件 注意: 声明的顺序就是读取的顺序!!!!-->
<include file="config/struts-book.xml"></include>
<include file="config/struts-user.xml"></include>
标签: #apache运行struts