所以我遇到了一个问题。我在页面到页面的请求中存储了某些字段,因为每个页面都需要在我使用跨页面的收集器中填充不同的字段。问题是后退按钮。
如果我点击链接将我带到我的登录页面,服务器会使用相应的页面名称和事件名称等从请求中填充收集器,以允许我导航到登录页面。 (某些东西必须加载,所以它必须通过servlet)。但是,在该页面上,有广告和诸如此类的静态模块,因此点击其中一个广告将带您进入一个不需要这些属性访问的单独的静态页面。在Chrome,Safari和FF中,如果我在访问此静态页面后单击后退按钮,浏览器会要求我重新加载请求以便能够查看该页面。但是,在IE8中,没有页面重新加载。它只是让我回到页面,并没有填充请求,它与我的抱歉页面崩溃。
我需要知道是否有办法在后退按钮点击上填充请求,以及如何执行此操作。否则,我的servlet在尝试访问字段时抛出空指针,因为它们在请求中都是空的。任何帮助将不胜感激。我甚至不确定这是否可能。
答案 0 :(得分:0)
我猜您正在使用POST
次请求导航到每个页面。 POST
应该仅使用 来发送与页面视图不同的一些用户操作 - 登录,购买内容,更改设置等。浏览器要求用户确认他们想要重新访问页面使用POST
之前,这意味着状态发生变化。见What is the difference between POST and GET?
对于简单的内容页面,用户不采取操作,最好使用GET
个请求。此外,使用request.getSession()
来获取和存储服务器侧的用户字段更为常见。也就是说,您只发送一次,然后查找每个请求。在java中查找有关会话跟踪的教程。