如何知道当前的Servlet请求是否是重定向的结果?

时间:2011-05-06 05:18:18

标签: servlets

有没有办法知道请求是否已在Servlet的doGet方法中重定向或转发?

在我的应用程序中,当用户(其会话已超时)单击文件下载链接时,会显示登录页面,这很好。当他们登录时,会立即发送他们请求的文件,而不更新他们看到的页面,这很糟糕。基本上,他们卡在登录屏幕上(需要刷新)。

我想要做的是中断此操作,只需重定向到带有链接的页面,当重定向请求文件时。

也许有更好的方法可以解决这个问题?

2 个答案:

答案 0 :(得分:2)

重定向发生在客户端。先前的请求指示浏览器发送新请求,因此对服务器来说它没有什么区别。 <{1}}标题可能包含一些有用的信息,但不确定。

重定向时,您可以附加一些参数,例如Referer,然后检查参数是否存在。如果您希望将其传输到多个页面,则可能必须将其放在登录页面上的?targetPage=dowloadpage字段中。

答案 1 :(得分:0)

如果您正在使用容器管理身份验证,那么我不相信您可以检测到这一点,因为一旦身份验证成功完成,服务器将只涉及您的资源。

如果您以不同方式管理身份验证,请解释。