使用JSP,我需要在做一些基本检查后重定向到另一个页面。目标网址需要提供一些额外的数据(与进行的检查相关)。一个显而易见的方法是:使用位置标题重定向URL,传递其他数据
String extraData = [calculate extra data];
response.setHeader("Loction", "target.jsp?extradata=" + extraData);
但是,我不想在浏览器的地址框中向用户公开额外的数据。
因为这一切都是在JSP中,另一种选择是设置一个会话属性:
String extraData = [calculate extra data];
session.setAttribute("extradata", extraData);
response.setHeader("Location", "target.jsp");
然后target.jsp可以从会话属性的额外数据。
但是,目标文件可能位于另一台服务器上,当然这不会共享相同的会话。
是否有一些其他方式可以重定向到另一个URL并传递额外的数据而不是URL本身?例如,是否有任何方法可能定义将在HttpServletRequest中传递到目标URL的附加头文件?
非常感谢您的回复。不幸的是,目标页面位于不同的应用程序中,因此标题不能通过。我怀疑我将不得不通过URL传递数据。 – cliveb
将数据作为参数传递将是最简单的解决方案,如果数据不敏感,则不应该是个问题。顺便说一句,如果你想出了一个更好的解决方案,在这里发布,我很想知道它。 – Alex