Struts2 Struts 2中的HTTP引用头

Struts2 Struts 2中的HTTP引用头,struts2,http-referer,servlets,Struts2,Http Referer,Servlets,如何在Struts2下获取Referer标题?现在我使用的是ActionSupport类,我似乎无法获得ServletActionContext对象或实现ServletRequestAware接口?(ServletRequestAware在Struts2中的什么位置?哪个jar?) 我试图设置一个自动重定向到页面的referer,它存储在会话变量中。当有人请求OAuth身份验证时,我将referer存储在会话中,然后将其发送到twitter。当他们点击allow时,twitter会将他们发送到我

如何在Struts2下获取Referer标题?现在我使用的是ActionSupport类,我似乎无法获得ServletActionContext对象或实现ServletRequestAware接口?(ServletRequestAware在Struts2中的什么位置?哪个jar?)

我试图设置一个自动重定向到页面的referer,它存储在会话变量中。当有人请求OAuth身份验证时,我将referer存储在会话中,然后将其发送到twitter。当他们点击allow时,twitter会将他们发送到我的OAuth回调url。我在那里工作(持久访问令牌),然后想将它们发送到我存储在会话中的referer

我相信你会知道,我对Struts非常陌生。我确实花了三个多小时阅读Java文档,用谷歌搜索和其他方式试图避免对我的愤怒——这是一个不折不扣的家伙

谢谢

在操作中引用HTTP元素被认为是“不酷”的,但这是必要的

org.apache.struts2.interceptor.
                         ServletRequestAware.setServletRequest(HttpServletRequest request);
实现该接口,创建一个
HttpServletRequest
成员变量,然后在上面实现的setter中将您的成员变量设置为请求。现在您有了请求,可以执行
请求。getHeader(“referer”)


有些人还使用静态方法
org.apache.struts2.ServletActionContext.getRequest()
来获取请求。它被认为是一种糟糕的形式,因为它会使单元测试变得更加困难,但我一直看到它。

我同意它不是最优雅的解决方案。也许我应该围绕它进行编码——设置重定向时所需的变量。它比Struts 1干净得多,Struts 1中的每个操作处理程序方法都始终传递请求。拿出这么多样板。