2011-11-14 84 views
1

页我有两个JSP页面:page1.jsppage2.jsp如何避免包括浏览历史

page1.jsp输出,在一些circunstances,可能是:

<a href="page2.jsp" id="hiddenlink" style="display:none;" >not displayed</a> 
<script>this.location.href=document.getElementById("hiddenlink").href;</script> 

之所以这样做重定向在这个奇怪的方法是,因为有在重写所有链接的URL中的Web应用程序层(过滤器)成不可读的字符串。浏览器会得到类似<a href="_YerwfwTWEf5YH34njtyRX"...>的东西。

在这种情况下,有没有办法(一元或头或其他),以避免page1.jsp被存储在浏览器的历史?

感谢

回答

2

的唯一方法是通过JavaScript使用location.replace。任何其他方法(点击链接,重定向等)都会将新条目添加到历史记录中。

+0

我想试试,我没有意识到“替换”方法。 –

0

取而代之的是:

this.location.href=document.getElementById("hiddenlink").href; 

使用此替换浏览器历史记录当前页面所以只有page2.jsp将成为历史:

window.location.replace(document.getElementById("hiddenlink").href); 
+0

应该指出的是,任何人只要有JS禁用仍然有原来的页面在他们的历史 – Matt

+0

如果JS被禁用,在问题中使用也不会在所有的工作重定向。问题中使用的客户端重定向机制需要javascript。没有javascript,页面将是page1.jsp,历史将显示该页面。 – jfriend00

+0

是的,JS会“在那里”对我来说,所以这不是一个问题。谢谢你的支持 –