2010-10-20 105 views
0

我剛剛開始了web應用程序開發。我有一個只有一行的index.jsp。JSP:轉發問題

< JSP:向前翻頁= 「landing.do?」/>

是什麼

  • 上面的行嗎?

  • page =「landing.do?」其實指的是?

  • 什麼問號「」旁邊「landing.do?」 signify?

作爲Bozho正確地指出,一個稱爲「動作」 的servlet被映射到處理「*。做」在我的web.xml(如下所示)。

<servlet-mapping> 

    <servlet-name>action</servlet-name> 

    <url-pattern>*.do</url-pattern> 

</servlet-mapping> 

現在

如何找出servlet的 「行動」 對應「landing.do」實際上呢?

謝謝。

+0

您在web.xml中的''聲明根本無濟於事,請參閱我的解釋。 – 2010-10-20 11:34:01

回答

4

<jsp:forward>將客戶端請求轉發到page屬性中聲明的URL。

我還需要提及的是,在你的榜樣,你應該有一個/作爲第一個字符的page聲明中,如果要指定相對URL,即:

這實際上,被翻譯爲重定向到(如果本地主機)

http://localhost:8080/MyAPP/landing.do? (您的翻譯是http://localhost:8080/MyAPPLanding.do?)

?允許您在聲明中附加application/x-www-form-urlencoded參數。

更多信息here


要知道什麼landing.do呢,請執行下列操作:

  • 轉到您的struts-config.xml(在WEB-INF文件夾中找到在您的項目)文件,並找到一個path="/landing")屬性的任何行動(<action>)。
  • 一旦找到自己的動作,就會有一個名爲type的屬性(在該動作中)。該類型是Struts調用來執行操作的操作類的類名。類名稱是完全限定名稱。
  • 打開類的java文件(如果存在)並根據動作(Action,DispatchAction,LookupDispatchAction),您將不得不找到它的映射並查看Struts調用的方法。
  • 在您的示例中,我的假設將基於您的landing.doAction類型。因此,請閱讀​​方法。所有的行爲實際上是Struts的​​。其他操作只是Template Method模式,它知道通過某種映射調用的方法。
+0

非常感謝那個美妙的答案 - 儘可能清楚! – 2010-10-20 11:46:13

1

這條線將用戶轉發到網站的另一個頁面,尤其是landing.do

頁=「landing.do?」實際上是指網站的一些頁面landing.do。我相信這個頁面是用Struts框架編寫的。 (但可以是其他)

問號「?」是什麼?在「landing.do?」旁邊在這種情況下什麼都沒有。一般在「?」之後應該有一個請求參數列表。在這種情況下,只會有沒有參數。

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

+0

是的,你正確地指出 - Struts框架。 – 2010-10-20 11:05:02

+0

user476216,還有什麼不清楚的? – 2010-10-20 11:13:19

+0

如何找到頁面「landing.do」? – 2010-10-20 11:22:33

1
  • 你可能映射在你的web.xml處理*.do一個servlet
  • ?這裏意味着什麼 - 通常它標誌着獲得的啓動參數(如?param=value
  • forward改變當前頁面指定的,沒有客戶知道發生了變化。