2011-05-06 79 views
0

有没有办法知道请求是否已被重定向或转发到Servlet的doGet方法中?如何知道当前的Servlet请求是否是重定向的结果?

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

我想要做的就是打断它,并简单地重定向到带链接的页面,当文件被重定向请求时。

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

回答

0

如果您使用的是容器管理的身份验证,那么我认为您无法检测到这一点,因为一旦身份验证成功完成,服务器将只涉及您的资源。

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

1

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

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

相关问题