简而言之,我有一个将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