2013-04-11 28 views
0

我有一個項目,我可以看到JSP的......然而Jboss的顯示我的servlet所以在地址欄中所有我可以看到JSP網頁是:如何知道哪些是顯示我的servlet

「appservleer?= AppDev」

這是一個不是實際地址的例子......但是隻有那些信息,我怎麼知道JBoss當時正在顯示哪個JSP。

還是我錯誤地理解了這個Jboss,servlet,JSP?

一些指導將不勝感激。

謝謝。

+0

感謝您的答案傢伙。 – 2013-04-11 16:13:28

回答

2

除非開發人員決定給出提示,否則您無法知道哪個jsp正在顯示。

A jsp只是servlet用來呈現響應的視圖技術。也就是說,通常,jsp將被解析並生成html。但是,servlet的開發人員可能會決定自己寫入響應。因此,即使您的網址爲www.mydomain.com/page.jsp,也無法真正瞭解您是從jsp還是從其他來源獲得的。沒有什麼能保證您在瀏覽器中看到的回覆是從jsp生成的。

+0

正是我的觀點......我不確切知道生成該特定網頁的具體內容。但是我可以訪問代碼,因此我可以訪問我所做的web.xml,並且我發現地址欄上顯示的名稱,但我不知道下一步該如何查找正在顯示的JSP。 – 2013-04-11 16:06:39

+0

@StevenHernandez你可以通過'url-mapping'元素將'Servlet'映射到哪個url的循環。如果您可以訪問servlet代碼,那麼可以查看它們的實現並檢查它們可能通過「RequestDispatcher」轉發給哪個'jsp'。會有一些相對路徑指向它。 – 2013-04-11 16:07:58

+0

ahhh有道理,所以@pravat在他的回答中有一些邏輯。但是所有這些添加過程都是通過跟蹤在地址欄中顯示的servlet名稱從web.xml完成​​的? – 2013-04-11 16:10:41

1

確定使用哪個JSP進行渲染的唯一方法是查看映射到(在您的示例中)"appservleer"下的servlet的源代碼。

查看web.xml哪個servlet與此路徑映射,並打開此servlet的源代碼。然後找出執行路徑,從doGet(...)doPost(...)方法開始,並查看它最終轉發到哪個JSP ...

祝你好運。

+0

是的,我找到了web.xml和servlet的名稱,但這是我的源代碼中的確切名稱?所以它會是appservleer.java? – 2013-04-11 16:12:00

+0

應將servlet定義爲包含元素的元素。 元素的內容是您正在尋找的確切類。例如。 「com.mycompany.AppServleer」。然後查看Web項目的源代碼目錄並打開相應的java文件,例如「src/com/mycompany/AppServleer.java」 – 2013-04-12 08:06:40

1

您應該始終從web.xml文件開始,該文件最終會引導您顯示實際的jsp文件。從servlet映射開始,檢查爲哪個servlet調用了url。然後深入到servlet中,找出它被重定向到的jsp。如果您正在使用任何應用程序框架,請查找實現以查找映射。對於例如在春季,Spring配置文件或控制器類將告訴你呼叫被重定向到的位置。

+0

也許你是對的,我需要跟蹤實際的JSP然而@Sotorios說了一些關於不能夠知道它是否真的由JSP生成的......那麼,其他可能是? – 2013-04-11 16:09:04

+0

我同意。響應也可以由servlet本身生成,這不是一個好習慣,但是,你無法阻止它。而且,無論它是由jsp還是servlet生成的,如果從web.xml開始,則始終可以跟蹤到根。 – pravat 2013-04-11 16:42:35

+0

恰恰是因爲這意味着如果servlet本身顯示網頁,通過到達servlet我會做回溯。 – 2013-04-11 16:45:12

相關問題