我有一個請求調度程序包含另一個servlet的servlet。Servlet在Tomcat中包含吞吞HTTP頭文件
包含的servlet設置我想在中讀取的標題,包括 servlet。所以我在include()方法中傳入了一個自定義的HTTPResponse對象,該方法捕獲了servlet中的所有反饋活動。
問題是在我的自定義響應中未設置標題。我在調試中運行並檢查了看起來像Tomcat使用自己的響應對象封裝自定義響應對象的情況。 setHeader調用轉到這個包裝類,並且永遠不會傳播到我的自定義響應對象。
我想Tomcat會這樣做,以保護客戶端不被錯誤地址設置。有趣的是,同樣的方法以我期望的方式在Jetty中運行。
這是一段時間,因爲我認真對待Servlets,所以我在這裏掙扎了一下。我試圖弄清楚如何從通過dispatcher.include()調用的servlet讀取響應頭。
換句話說,Jetty做錯了。 – BalusC 2010-10-01 20:24:35
謝謝你澄清我的行爲。你知道我想過使用request.setAttribute()。這將起作用,並且我將它作爲計劃B保留下來,因爲在D.R.Y的意義上它不是最優的。我需要訪問內容類型和內容長度以傳播到包含的servlet。使用請求屬性強制冗餘。但是,包含的servlet *需要重構。再次感謝! – Cliff 2010-10-04 02:33:27
如果我將包含* servlet的servlet轉換爲可以工作的Filter?我的意思是,在由Filter調用的Servlet中編寫頭文件時,是否違反了spec規範? – Cliff 2010-10-04 02:35:48