我使用sendRedirect()
从我的servlet调用JSP页面作为TargetURL,如下所示:
response.sendRedirect(TargetURL);
现在1.)我希望查询字符串在地址栏中是不可见的。 2.)当我使用时,我的控件不会转到TargetPage(在我的情况下是JSP页面) response.sendRedirect是(response.encodeRedirectURL(TargetURL中));
任何带有代码片段的建议都会非常感激。
答案 0 :(得分:0)
我认为你想要RequestDispatcher#forward()
提供的功能。
forward()
和sendRedirect()
之间的主要区别在于前者将导致在服务器上调用新资源(Servlet或JSP),而sendRedirect()
将发送响应客户端将导致它发送TargetURL
的新请求。
这样做的副作用是sendRedirect()
,用户将看到地址发生变化,因为客户端已被重定向; forward()
不会发生这种情况,因为更改发生在服务器上并且不涉及客户端。此外,使用forward()
,被调用资源获取原始请求和响应对象,而sendRedirect()
,客户端发送一个全新请求,因此您将失去通过请求属性共享数据的任何机会。