我想將另一個servlet的輸出包含到當前響應中。Servlet RequestDispatcher #include和pathInfo
我可以叫
request.getRequestDispatcher("/new/url").include(request, response);
,它並轉到合適的Servlet,但request.getPathInfo()
,request.getServletPath()
和朋友們不要讓設置爲新URL(他們仍然有舊值),所以該servlet做不行。
這應該是這樣嗎?我能做些什麼來完成這項工作?
我明白了。這需要Servlet意識到它已被包含,儘管(我認爲這是有道理的,因爲它不允許做某些事情,比如設置內容類型)。 – Thilo 2010-11-02 13:26:28
感謝您的知識共享+1。順便提一下,我提到了兩個文檔。我從'forward()'方法引用的一個是完全合理的,因爲它是關於獲取'RequestDispatcher'。現在使用取決於用戶想要的內容,可以調用'forward()'或'include()'。 – 2010-11-03 02:51:52
@Adeel:對不起,沒有注意到。也許在javadoc中不清楚,但是這個來自'forward()'描述的短語實際上意味着在從'ServletContext.getNamedDispatcher()'獲得的'RequestDispatcher'上調用'forward()'時,路徑信息不會改變。 – axtavt 2010-11-03 12:40:12