一、struts2簡介 1、Struts2是一個基於MVC設計模式的Web應用框架 只要是web層框架 一般就會遵守MVC設計模式 2、struts2與struts1的關係? 沒關係 WebWork基於xwork 3、struts2是一個可插拔式框架(解耦) 通過filter與javaweb結合的 ...
一、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功能強大