首頁 Java java教程 jsp中action是什麼

jsp中action是什麼

May 15, 2019 am 11:18 AM
jsp

JSP中Action類別是使用者要求和業務邏輯之間的橋樑,其中每個Action充當客戶的一項業務代理,當「RequestProcessor」類別預處理請求時,並且在建立Action實例後,就可以呼叫自身「processActionPerform」方法。

jsp中action是什麼

Action類別是使用者請求和業務邏輯之間的橋樑,每個Action充當客戶的一項業務代理。當RequestProcessor類別預處理請求時,在建立了Action的實例後,就呼叫自身的processActionPerform()方法,該方法在呼叫Action類別的execute()。

推薦課程:Java教學

下面介紹jsp中action的功能:

完整的action

<action path="/aFullAction" 
type="somePackage.someActionClass">  
name="someForm" 
input="someJSP.jsp" 
<forward name="successful" path="someJSP.jsp"/>  
<forward name="failed" path="someOtherJSP.jsp"/>  
</action>
登入後複製

首先,Struts的ActionServlet接收到一個請求,然後根據struts- config.xml的設定定位到對應的mapping(映射);接下來假如form的範圍是request或在定義的範圍中很難找到這個form,建立一個新的form實例;取得form實例以後,呼叫其reset ( )方法,然後將表單中的參數放入form,假如validate屬性不為false,呼叫validate()方法;假如validate()傳回非空的ActionErrors,將會被轉到input屬性指定的URI,假如返回空的ActionErrors,那麼執行Action的execute() 方法,根據傳回的ActionForward決定目標URI。

這樣做的效果是:execute()只有當validate()成功以後才執行;input屬性指定的是個URI。

只有JSP的action

<action path="/aJSPOnlyAction" 
type="org.apache.struts.actions.ForwardAction" 
parameter="someOtherJSP.jsp" 
/>
登入後複製

首先,ActionServlet接到請求後呼叫ForwardAction的execute()方法,execute()根據設定的parameter屬性值來forward到那個URI。

這樣做的效果是:沒有任何form被實例化,比較現實的情形可能是form在request更高層級的範圍中定義;或這​​個action被用作在應用程式編譯好後充當系統參數,只需要更改這個配置文件而無需重新編譯系統。

兩個action對應一個form

<action path="/anAction" 
type="somePackage.someActionClass">  
name="someForm" 
input="someJSP.jsp" 
<forward name="successful" path="/anotherAction.do"/>  
</action>  
<action path="/anotherAction" 
type="somePackage.someOtherActionClass">  
name="someForm" 
input="someOtherJSP.jsp" 
<forward name="successful" path="someResultJSP.jsp"/>  
</action>
登入後複製

就每個單獨的action來講,處理上並沒有和完整的action有什麼實質的區分。這個組合模式能夠被用來傳遞命令物件(form)。要注意的是在後一個action中同樣會呼叫form的reset()和validate()方法,因此我們必須確保form中的資訊不會被重寫。

處理的方式大致分為兩種:

a) 在request中放入一個指示器表示前一個action有意後一個action傳遞form,從而在後一個action能夠保留那個form中的值,這個方式只能在使用forward時使用。

b) 當使用redirect而不是forward時,能夠把指示器放在session或更高的級別,在命令鏈的最後一環將這個指示器清除。

<action path="/anAction" 
type="somePackage.someActionClass">  
name="someForm" 
input="someJSP.jsp" 
<forward name="successful" path="/anotherAction.do" redirect="true"/>  
</action>  
<action path="/anotherAction" 
type="somePackage.someOtherActionClass">"  
name="someOtherForm" 
input="someOtherJSP.jsp" 
<forward name="successful" path="someResultJSP.jsp"/>  
</action>
登入後複製

這個組合方式跟前一種在流程上沒有太大區分,只是我們現在對於兩個action分別提供了form,於是程式碼看起來更清楚。於是我們能夠分別處理WEB應用程式的輸入和輸出。

值得注意的是,後一個action同樣會嘗試往form中寫入那些參數,但是我們能夠這樣處理:

a) 在後一個form中使用另一套屬性名;

b) 只提供getter而不提供setter。

大致的處理是這樣:

前一個action接收輸入、驗證、然後將資料寫入業務層或持久層,重定向到後一個action,後一個action手動的從業務層/持久層取出數據,寫入form(透過其他方式),交給前台JSP顯示。

這樣做的好處是不必保留輸入form中的值,因此能夠使用redirect而不是forward。這樣就降低了兩個action之間的耦合度,同時也避免了不必要的重複提交。

以上是jsp中action是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

jsp是屬於前端還是後端 jsp是屬於前端還是後端 Jan 28, 2023 pm 06:23 PM

jsp屬於後端。 jsp的本質是一種servlet,而servlet又是伺服器端的java應用程序,所以jsp是屬於後端的技術。 JSP部署於網頁伺服器上,可回應客戶端所傳送的請求,並依照請求內容動態地產生HTML、XML或其他格式文件的Web網頁,然後傳回給請求者。 JSP技術以Java為腳本語言,為使用者HTTP請求提供服務,並能與伺服器上的其它Java程式共同處理複雜的業務需求。

jsp和html區別在哪 jsp和html區別在哪 Jan 09, 2024 am 10:46 AM

jsp和html區別:1、運作機制;2、用途;3、與Java的關係;4、功能;5、與後端的關係;6、速度;7、可維護性和擴展性;8、學習和使用的難易度;9、文件後綴和識別工具;10、社區和支持;11、安全性。詳細介紹:1、運行機制,HTML是一種標記語言,主要用於描述和定義網頁的內容,它運行在客戶端,由瀏覽器解釋執行,JSP是一種動態網頁技術,運行在伺服器端等等。

SpringBoot專案如何整合JSP SpringBoot專案如何整合JSP May 12, 2023 pm 07:40 PM

新建好springboot專案以後目錄如下:第一步:在專案的pom檔案中加入設定jsp所需的jar套件程式碼:org.apache.tomcat.embedtomcat-embed-jasperprovided第二步:在main路徑下新建目錄webapp ,在webapp下新建路徑WEB-INF,在WEB-INF下新建路徑jsp,在這個路徑下放置我們要使用的jsp檔案第三步:在主設定檔中設定jsp檔案的存取路徑和後綴程式碼:spring .mvc.view.prefix=/WEB-INF/jsp/sp

jsp分頁功能怎麼實現 jsp分頁功能怎麼實現 Mar 04, 2024 pm 04:40 PM

實現步驟:1、在JSP頁面中引入JSTL標籤庫;2、從資料庫取得資料;3、對資料進行分頁處理;4、在頁面中顯示分頁導覽條;5、根據目前頁碼和每頁顯示數量,從分頁後的資料中取得對應的資料並顯示在頁面上即可。

如何用jsp+mysql實現網頁的分頁查詢 如何用jsp+mysql實現網頁的分頁查詢 May 30, 2023 pm 03:58 PM

一、實作分頁查詢的核心sql語句(1)查詢資料庫的記錄總數的sql語句:selectcount(*)from+(表名);(2)每次查詢的記錄數的sql語句:其中:0是搜尋的索引,2是每次查找的條數。 select*from表名limit0,2;二、程式碼實作*上篇寫過這兩個類,DBconnection類:用於取得資料庫連接,Author物件類別。這兩個類別的程式碼點擊連接查看。點選連結查看DBconnection類別和Author物件類別(1)登入頁面:index.jsp。 Inserttitlehere用戶列

jsp是什麼格式的文件 jsp是什麼格式的文件 Jan 24, 2024 pm 04:01 PM

JSP是一種動態網頁技術標準,其檔案格式是在傳統的網頁HTML檔案(.htm,.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案(*.jsp )。

JSP能否被PHP取代? JSP能否被PHP取代? Mar 21, 2024 am 11:03 AM

JSP能否被PHP取代? JSP(JavaServerPages)和PHP(HypertextPreprocessor)都是常用的伺服器端腳本語言,用於動態產生網頁內容。雖然它們各有特色和優勢,但在實際應用中,是否可以完全取代對方?本文將分析兩者的優缺點,並透過具體的程式碼範例進行比較。首先,我們來看看JSP和PHP各自的特色。 JSP是一種基於Java的

PHP能否替換JSP的功能? PHP能否替換JSP的功能? Mar 20, 2024 pm 03:45 PM

PHP能否替換JSP的功能?隨著Web開發技術的不斷發展,開發人員經常面臨選擇合適的伺服器端語言來實現他們的專案需求。在這方面,PHP和JSP是兩種常見的選擇。 JSP是JavaServerPages的縮寫,它是基於Java的伺服器端技術,而PHP則是一種伺服器端腳本語言。本文將探討PHP是否能夠取代JSP的功能,並提供一些具體的程式碼範例來幫助讀者更好地

See all articles