标签:
struts2框架
struts2是一种基于MVC模式的框架,是在struts1的基础上融合了xwork的功能。
struts2框架预处理了一些功能:
>请求数据自动封装,
>文件上传的功能
>对国际化功能的简化
>数据校验功能
使用struts2框架开发的流程:
1.引入jar文件
>commons-fileupload-1.2.2.jar 【文件上传相关包】
>commons-io-2.0.1.jar
>struts2-core-2.3.4.1.jar 【struts2核心功能包】
>xwork-core-2.3.4.1.jar 【Xwork核心包】
>ognl-3.0.5.jar 【Ognl表达式功能支持表】
>commons-lang3-3.1.jar 【struts对java.lang包的扩展】
>freemarker-2.3.19.jar 【struts的标签模板库jar文件】
>javassist-3.11.0.GA.jar 【struts对字节码的处理相关jar】
2.配置web.xml
Tomcat启动时,会加载所有项目的web.xml,通过web.xml中引入过滤器,而struts的核心功能
的初始化,是通过过滤器完成的
<!--引入核心过滤器-->
<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>
StrutsPrepareAndExecuteFilter就是核心过滤器,位于struts2的核心功能包中,使用struts版本不同,核心过滤器类是不一样的
3.配置struts.xml
struts2的执行流程
1.服务器启动
>加载web.xml
>创建struts核心过滤器对象,执行filter-->init()
·struts-default.xml, 核心功能的初始化
·struts-plugin.xml, struts相关插件
·struts.xml 用户编写的配置文件
2.用户访问
>用户访问action,服务器根据路径名称,找对应的action配置,创建action对象
>执行默认拦截器栈中定义的18个拦截器
>执行action的业务处理方法
struts-default.xml详解
1.位于struts2-core-2.3.jar包中,
2.bean节点指定了struts在运行时候创建的对象类型
3.指定struts-default包,用户写的struts.xml文件中package一定要继承此包,struts-default包定义了:
>跳转的结果类型:dispatcher,redirect,redirectAction,stream
>定义了所有拦截器,一共32个拦截器,为了拦截器引用方便,可以通过定义栈的方式引用拦截器,默认的栈中包含了初始化18个拦截器
>默认执行的拦截器栈、默认执行的action
拦截器和过滤器比较:
相似:功能相似
区别: 过滤器,拦截器所有资源都可以; (/index.jsp/servlet/img/css/js)
拦截器,只拦截action请求。
拦截器是struts的概念,只能在struts中用。
过滤器是servlet的概念,可以在struts项目、servlet项目用
注意:拦截器什么时候执行,先执行Action类创建,还是先执行拦截器
答:拦截器在访问时执行,先创建Action类对象,再按顺序执行18个拦截器,最后执行Action类的业务处理方法
Action开发
Action开发有三种方式:
1.继承ActionSupport类,如果用struts的数据校验功能,必须继承此类
2.实现Action接口,重写execute方法
3.不继承任何类,不实现任何接口
struts中路径匹配原则:
localhost:访问到哪一台机器
8080:找到Tomcat
mystruts:找到项目名
/user/a/b:查找是否有此名称空间,没有则向下
/user/a:查找是否有此名称空间,没有则向下
/user:查找是否有此名称空间,没有则向下
/:查找是否有此名称空间,没有则报错
例如:<action name="login" class="..." method="..."></action>,项目名称后面可以有/a/b这些无用的分层,只要最后为login以及名称空间正确照样能访问
struts中的常量
>struts中的常量定义了默认访问后缀等配置,文件名为default.propertities
>位于struts核心包中
>能够在struts.xml中通过<constant name="key" value="value"></coonstant>修改默认常量配置
标签:
原文地址:http://www.cnblogs.com/elecdog/p/5744861.html