簡體   English   中英

JSP:轉發問題

[英]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調用以執行動作的動作類的類名。 類名稱是完全限定名稱。
  • 打開類的Java文件(如果存在),然后根據操作( ActionDispatchActionLookupDispatchAction ),必須找到其映射並查看Struts調用的方法。
  • 在您的示例中,我的假設將基於您的landing.do類型為Action 因此,請閱讀execute()方法的作用。 實際上,所有動作都是Struts的execute() 其他動作只是Template Method模式,它知道通過某些映射調用哪種方法。

此行會將用戶轉發到網站的另一頁,尤其是landing.do

page =“ landing.do?” 實際是指該網站Landing.do的某些頁面。 我相信此頁面是用Struts框架編寫的。 (但可以是其他)

問號是什么? 在“ landing.do”旁邊? 在這種情況下毫無意義。 通常在“?”之后 應該有一個請求參數列表。 在這種情況下,將沒有任何參數。

更新:您應該找到映射到該servlet名稱的servlet類。 之后,您將能夠嘗試了解該servlet類的功能。 另外,請查看Struts教程或規范以了解Struts框架工作流程。

  • 您可能已將servlet映射為處理web.xml中的*.do
  • ? 這里沒有任何意義-通常它標志着get參數的開始(例如?param=value
  • 在客戶端不知道更改已發生的情況下,用指定的內容forward當前頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM