簡而言之,我有一個將GET請求轉發到JSP的servlet,我想從用戶「隱藏」目標URL 。使用RequestDispatcher將請求從servlet轉發到JSP不會隱藏目標URL
我的設置如下:
- 一個servlet,映射到URL 「www.mydomain.com/pages/page1」
- 一個JSP,在地址「/ WEB-INF /頁/第1頁.jsp「,相對於應用程序根目錄。 JSP駐留在WEB-INF目錄中,以便不能直接從瀏覽器訪問。
在從瀏覽器中,servlet預處理輸入GET請求接入,並使用下面的代碼段將其轉發給JSP:
request.getRequestDispatcher("/WEB-INF/pages/page1.jsp").forward(request, response);
的期望的行爲是爲瀏覽器保持URL「www.mydomain.com/pages/page1」,而用戶看到JSP的內容。
不幸的是,瀏覽器始終切換到顯示JSP的URL: 「www.mydomain.com/WEB-INF/pages/page1.jsp」(經測試,在Chrome和Firefox)
誰能告訴我,什麼可能會導致這種行爲?
來源: 該解決方案在此CodeRanch答案,在他們成功地「隱藏」的地址到JSP描述:http://www.coderanch.com/t/618800/JSP/java/Url-hiding
這應該工作得很好。你可以發送servlet的完整'doGet()'方法和'web.xml'中的'servlet-mapping'。 –
@ W-S,感謝您確認您也希望這能夠奏效。這激勵我做一些調試,並找出問題的原因。請參閱下面的答案。 – paulkore