如何使用SendRedirect()在地址栏中使查询字符串不可见

时间:2011-02-15 13:07:13

标签: servlets

我使用sendRedirect()从我的servlet调用JSP页面作为TargetURL,如下所示:

response.sendRedirect(TargetURL);

现在1.)我希望查询字符串在地址栏中是不可见的。 2.)当我使用时,我的控件不会转到TargetPage(在我的情况下是JSP页面)  response.sendRedirect是(response.encodeRedirectURL(TargetURL中));

任何带有代码片段的建议都会非常感激。

1 个答案:

答案 0 :(得分:0)

我认为你想要RequestDispatcher#forward()提供的功能。

forward()sendRedirect()之间的主要区别在于前者将导致在服务器上调用新资源(Servlet或JSP),而sendRedirect()将发送响应客户端将导致它发送TargetURL的新请求。

这样做的副作用是sendRedirect(),用户将看到地址发生变化,因为客户端已被重定向; forward()不会发生这种情况,因为更改发生在服务器上并且不涉及客户端。此外,使用forward(),被调用资源获取原始请求和响应对象,而sendRedirect(),客户端发送一个全新请求,因此您将失去通过请求属性共享数据的任何机会。