1

我有一个 download.jsp 页面,该页面具有仅在他登录时才下载文件的功能。当他单击下载选项时,它会要求登录下载并重定向到登录页面,当他进行身份验证时,用户应重定向到 download.jsp

这是我的struts.xml文件

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="default" extends="struts-default">
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
        <action name="loginAction" method="login" class="com.vaannila.action.LoginAction">
            <result name="sucess" type="tiles">welcome</result>
            <result name="failure" type="tiles">home</result>

        </action>
    </package>
</struts>

在 LoginAction 类中,我只有一种方法 login 进行身份验证并返回成功或失败,并调用结果页面

登录后如何返回调用者页面download.jsp

4

1 回答 1

0

您可以尝试实现上述功能的选项很少

HTTP Referer标题喜欢

final String refer = request.getHeader("Referer");

这个问题很少,防火墙和浏览器可以阻止它,这可能会导致一些问题,尽管我没有看到任何此类问题并且已经使用过几次。

其他更可靠的解决方案是使用隐藏文件或附加当前页面 URL 作为查询字符串,并在您的应用程序中使用它,例如

<a href="login?destination=theCurrentUrl">Login</a>

您可以使用此变量找出当前页面的 URL,并在登录后将其重定向。

如果您使用的是 Spring 安全性,它具有此功能,它存储来自使用的信息,并在身份验证后重定向回同一页面。

希望这可以帮助你

于 2013-04-24T04:15:04.170 回答