Struts2知识点小结(一)
一、struts2简介
1、Struts2是一个基于MVC设计模式的Web应用框架 只要是web层框架 一般就会遵守MVC设计模式
2、struts2与struts1的关系? 没关系 WebWork基于xwork
3、struts2是一个可插拔式框架(解耦) ---通过filter与javaweb结合的
二、struts2快速入门
1、导入jar
struts-2.3.24\apps\struts2-blank\WEB-INF\lib\*.jar
2、配置web.xml Struts2的核心filter
<!-- Struts2的核心filter -->
<filter>
<filter-name>Struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、创建Action
public class QuickAction {
public String execute(){
System.out.println("QuickAction execute runnging.. ...");
return null;
}
}
4、配置struts.xml
位置:src下
约束位置:struts2-core-2.3.24.jar/struts-2.3.dtd
<struts>
<package name="test" namespace="/" extends="struts-default">
<action name="quick" class="com.itheima.action.QuickAction"></action>
</package>
</struts>
5、测试
http://localhost:8080/Struts2Day01/quick
三、struts2的配置文件
1、入口Filter ---StrutsPrepareAndExecuteFilter
Prepare:准备 对应init方法
Execute:执行 对应doFilter
PS:filter与生命周期相关方法:init destroy doFilter
准备工作:
--->StrutsPrepareAndExecuteFilter
--->public void init(FilterConfig filterConfig)
--->dispatcher = init.initDispatcher(config);
--->dispatcher.init();
--->
init_DefaultProperties(); // [1] 加载org/apache/struts2/default.properties文件
init_TraditionalXmlConfigurations(); // [2] 加载struts-default.xml,struts-plugin.xml,struts.xml
init_LegacyStrutsProperties(); // [3] 加载src下的struts.properties文件
init_FilterInitParameters() ; // [6] 加载Struts2的核心Filter分初始化参数
总结:
服务器启动--->创建Filter--->初始化方法init执行---->加载一些列的配置文件
default.properties struts2内置
struts-default.xml struts2内置
struts-plugin.xml struts2内置 struts.xml 自定义 struts.properties 自定义
Filter的init 自定义
注意:如果加载的内容有冲突的话,后加载的内容可以覆盖先加载的内容
2、 default.properties
配置struts2默认常量
struts.i18n.encoding=UTF-8 设置struts2的编码是UTF-8 post不用解决乱码
struts.multipart.maxSize=2097152 限制上传文件大小 2M
struts.action.extension=action,, 访问Action时的扩展名
struts.devMode = false 设置开发模式 默认不开启开发模式 设置为true 修改struts2的内容后不需要重启服务器
3、struts-default.xml
常量
struts-default包
结果跳转类型
interceptors拦截器
4、struts-plugin.xml
5、struts.xml
位置:类加载路径下(src)
见struts.xml文件
6、struts.properties
src自定义properties文件 该文件作用配置常量(等同于struts.xml中的constant)
7、Filter的init
只能配置常量
<filter>
<filter-name>Struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>action,,</param-value>
</init-param>
</filter>
四、struts2的常用API
Action定义的三种方式:
1、POJO充当Action
2、Action类实现Action接口
Action接口提供5个常量
SUCCESS:成功
ERROR:报错
NONE:不进行视图跳转 相当于null
INPUT:跳转到输入视图
LOGIN:跳转登录视图
3、Action类继承ActionSupport类
ActionSupport功能强大