Struts使用入門使用

2021-09-24 12:53:31 字數 3439 閱讀 3232

struts 官網位址 :

那麼我們知道strtus只乙個web框架,用它可以來替換我們之前所用過的servlet技術,它幫我們封裝了 請求資料的功能,簡化國際化,簡化檔案上傳,後台資料校驗等等。既然使用它,我們先來看下它執行的過程

乙個請求在struts2框架中的處理分為以下幾個步驟:

1.客戶端發出乙個指向servlet容器的請求(tomcat);

2.這個請求會經過圖中的幾個過濾器,最後會到達filterdispatcher過濾器。

4.如果找到需要呼叫的action,過濾器會把請求的處理交給actionproxy。actionproxy為action的**物件。actionproxy通過configurationmanager詢問框架的配置檔案,找到需要呼叫的action類。

5.actionproxy建立乙個actioninvocation的例項。actioninvocation在actionproxy層之下,它表示了action的執行狀態,或者說它控制的action的執行步驟。它持有action例項和所有的interceptor。

6.actioninvocation例項使用命名模式來呼叫,

actioninvocation初始化時,根據配置,載入action相關的所有interceptor。

通過actioninvocation.invoke方法呼叫action實現時,執行interceptor。在呼叫action的過程前後,涉及到相關***(intercepetor)的呼叫。

7 .一旦action執行完畢,actioninvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果

接下來我們在web專案中進行struts的使用

首先 把 struts所需要的jar包匯入到專案中 [web-inf/lib中]

接下來,新建action類

這裡我們是通過 繼承了 actionsupport類,預設訪問的是該類的 execute方法

返回值是在 後面需要配置的struts.xml中的 result配置中去找對應的返回檢視

接下來編寫 struts.xml,注意 該檔案必須位於 src目錄下,

配置如下

這裡通過package 描述乙個包配置,其中 name 只是乙個包名,繼承於struts-default預設的包配置,在通過action配置 我們需要訪問的action類

action節點中有 name配置,這個name致我們需要訪問的url配置,class是我們編寫的action類的具體路徑[包+類名],result配置則是action類中返回的檢視配置,name值應該與acton類中返回的一致,預設去webroot目錄下找該資源

到此,action配置完畢,我們還需要配置web.xml,上面我們知道struts是基於filter實現,那麼我們在web.xml中 配置對應的過濾器即可

配置如下:

接下來我們把專案部署到tomcat中,然後啟動tomcat,訪問該位址

到此struts配置完畢

那麼接下來我們看看struts執行的過程

啟動專案[tomcat]

1.建立核心過濾器 strutspreparedandexecutefilter物件

2.執行核心過濾器的init方法

讀取了以下配置[依次讀取]

struts-default.xml [struts2 預設配置檔案]

struts-plugin.xml [struts2 外掛程式配置檔案]

struts.xml [自己寫的業務的配置檔案(包含了配置的action)]

類**位於 strtus-core的jar中的 dispatcher類中

如下

訪問資源

3.在框架中查詢對應的action配置,得到class內容,建立action物件

4.讀取action配置的 method內容,執行action物件的對應方法

此檔案位於 struts-core 核心包中

<?xml version="1.0" encoding="utf-8" ?>

input,back,cancel,browse

input,back,cancel,browse

input,back,cancel

input,back,cancel

檢視原始檔,我們可以看到有幾項配置

1.宣告了struts框架執行使用到的一些物件 配置

2.預設包 包名 struts-default(注意:自己寫的package必須繼承這個預設包,只有繼承才能使用其下的功能)

2.1. 此包下配置,此處是跳轉型別

我們常用的有 redirect: 重定向到頁面

redirectaction:重定向到action

dispatcher: **到頁面

chain:**到action

stream:把一般內容輸出到流

(=在此可以演示下不同的跳轉的效果=)

2.2.宣告***(interceptors 32個內建***)

struts預設***:完成struts2核心功能(請求封裝,檔案上傳等)

*** vs 過濾器

過濾器:可過濾任何型別的請求(html/servlet/jsp)和響應

***:是struts2特有的功能,只能過濾action

2.3.宣告***(interceptor-stack name=「basicstack」)

2.4.預設包使用的***

注意:我們使用的包就是繼承 此預設包

2.5 當前預設包下的預設action

Struts標籤使用

1.1.頁面跳轉 可以使用href page action三個屬性實現struts檢視層元件的跳轉,三個屬性的作用及區別為 href使用該網域名稱下的相對路徑,路徑前不需要加 或鏈結至以http開頭其它網域名稱,href index.jsp href http page使用該網域名稱下的絕對路徑,路...

struts標籤使用

標記用於在頁面中建立乙個迴圈,以此來遍歷如陣列 collection map這樣的物件。該標記的功能強大,在struts應用的頁面中經常使用到。1 對陣列進行迴圈遍歷 使用 logic iterate 標記可以用於遍歷陣列,以下是一段示例 string testarray pagecontext.s...

Struts安裝與使用

struts可以執行在任何乙個支援jsp1.2和servlet2.3的web container中struts將所有的請求提交到同乙個中心控制器,org.apache.struts.action.actionservlet 類 web.xml配置 servlet name action servle...