[英]JSP:forward Question
我剛剛開始進行Web應用程序開發。 我有一個index.jsp,只有一行。
<jsp:forward page =“ landing.do?” />
是什么
上面的線嗎?
page =“ landing.do?” 實際指的是什么?
“ landing.do ”旁邊的問號“ ? ”是什么? 表示?
正如Bozho正確指出的那樣,在我的web.xml中,一個名為“ action”的servlet被映射為處理“ * .do” (如下所示)。
<servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
現在
我如何找出與“ landing.do”相對應的servlet“動作”的實際作用?
謝謝。
<jsp:forward>
將客戶端請求轉發到在page
屬性上聲明的url。
我還需要提及的是,在您的示例中,如果要指定相對URL,則page
聲明中的第一個字符應為/
,即:
實際上,這被轉換為到的重定向(如果是localhost)
http:// localhost:8080 / MyAPP / landing.do嗎? (您將被翻譯為http:// localhost:8080 / MyAPPLanding.do嗎?)
?
允許您將application/x-www-form-urlencoded
參數附加到聲明中。
更多信息在這里 。
要了解landing.do
作用,請執行以下操作:
struts-config.xml
(位於項目的WEB-INF
文件夾中)文件,然后找到具有path="/landing"
)屬性的任何操作( <action>
)。 type
的屬性。 該類型是Struts調用以執行動作的動作類的類名。 類名稱是完全限定名稱。 Action
, DispatchAction
, LookupDispatchAction
),必須找到其映射並查看Struts調用的方法。 landing.do
類型為Action
。 因此,請閱讀execute()
方法的作用。 實際上,所有動作都是Struts的execute()
。 其他動作只是Template Method
模式,它知道通過某些映射調用哪種方法。 此行會將用戶轉發到網站的另一頁,尤其是landing.do
page =“ landing.do?” 實際是指該網站Landing.do的某些頁面。 我相信此頁面是用Struts框架編寫的。 (但可以是其他)
問號是什么? 在“ landing.do”旁邊? 在這種情況下毫無意義。 通常在“?”之后 應該有一個請求參數列表。 在這種情況下,將沒有任何參數。
更新:您應該找到映射到該servlet名稱的servlet類。 之后,您將能夠嘗試了解該servlet類的功能。 另外,請查看Struts教程或規范以了解Struts框架工作流程。
*.do
?
這里沒有任何意義-通常它標志着get參數的開始(例如?param=value
) forward
當前頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.