我有一個項目,我可以看到JSP的......然而Jboss的顯示我的servlet所以在地址欄中所有我可以看到JSP網頁是:如何知道哪些是顯示我的servlet
「appservleer?= AppDev」
這是一個不是實際地址的例子......但是隻有那些信息,我怎麼知道JBoss當時正在顯示哪個JSP。
還是我錯誤地理解了這個Jboss,servlet,JSP?
一些指導將不勝感激。
謝謝。
我有一個項目,我可以看到JSP的......然而Jboss的顯示我的servlet所以在地址欄中所有我可以看到JSP網頁是:如何知道哪些是顯示我的servlet
「appservleer?= AppDev」
這是一個不是實際地址的例子......但是隻有那些信息,我怎麼知道JBoss當時正在顯示哪個JSP。
還是我錯誤地理解了這個Jboss,servlet,JSP?
一些指導將不勝感激。
謝謝。
除非開發人員決定給出提示,否則您無法知道哪個jsp
正在顯示。
A jsp
只是servlet用來呈現響應的視圖技術。也就是說,通常,jsp
將被解析並生成html。但是,servlet的開發人員可能會決定自己寫入響應。因此,即使您的網址爲www.mydomain.com/page.jsp
,也無法真正瞭解您是從jsp
還是從其他來源獲得的。沒有什麼能保證您在瀏覽器中看到的回覆是從jsp
生成的。
正是我的觀點......我不確切知道生成該特定網頁的具體內容。但是我可以訪問代碼,因此我可以訪問我所做的web.xml,並且我發現地址欄上顯示的名稱,但我不知道下一步該如何查找正在顯示的JSP。 – 2013-04-11 16:06:39
@StevenHernandez你可以通過'url-mapping'元素將'Servlet'映射到哪個url的循環。如果您可以訪問servlet代碼,那麼可以查看它們的實現並檢查它們可能通過「RequestDispatcher」轉發給哪個'jsp'。會有一些相對路徑指向它。 – 2013-04-11 16:07:58
ahhh有道理,所以@pravat在他的回答中有一些邏輯。但是所有這些添加過程都是通過跟蹤在地址欄中顯示的servlet名稱從web.xml完成的? – 2013-04-11 16:10:41
確定使用哪個JSP進行渲染的唯一方法是查看映射到(在您的示例中)"appservleer"
下的servlet的源代碼。
查看web.xml
哪個servlet與此路徑映射,並打開此servlet的源代碼。然後找出執行路徑,從doGet(...)
或doPost(...)
方法開始,並查看它最終轉發到哪個JSP ...
祝你好運。
是的,我找到了web.xml和servlet的名稱,但這是我的源代碼中的確切名稱?所以它會是appservleer.java? – 2013-04-11 16:12:00
應將servlet定義爲包含
您應該始終從web.xml文件開始,該文件最終會引導您顯示實際的jsp文件。從servlet映射開始,檢查爲哪個servlet調用了url。然後深入到servlet中,找出它被重定向到的jsp。如果您正在使用任何應用程序框架,請查找實現以查找映射。對於例如在春季,Spring配置文件或控制器類將告訴你呼叫被重定向到的位置。
也許你是對的,我需要跟蹤實際的JSP然而@Sotorios說了一些關於不能夠知道它是否真的由JSP生成的......那麼,其他可能是? – 2013-04-11 16:09:04
我同意。響應也可以由servlet本身生成,這不是一個好習慣,但是,你無法阻止它。而且,無論它是由jsp還是servlet生成的,如果從web.xml開始,則始終可以跟蹤到根。 – pravat 2013-04-11 16:42:35
恰恰是因爲這意味着如果servlet本身顯示網頁,通過到達servlet我會做回溯。 – 2013-04-11 16:45:12
感謝您的答案傢伙。 – 2013-04-11 16:13:28