Struts 2中的HTTP Referer标头

时间:2009-10-22 02:08:13

标签: struts2 http-referer servlets

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

我正在尝试设置自动重定向到页面的引用,存储在会话变量中。当有人请求OAuth身份验证时,我会将referer存储在会话中,然后将其发送到twitter。当他们点击允许时,Twitter会将其发送到我的OAuth回调网址。我在那里工作(持久访问令牌),然后将它们发送给我存储在会话中的引用者。

我相信你可以说,我对Struts来说很新。我花了三个多小时阅读Java文档,谷歌搜索,并试图避免愤怒对我的愤怒畏缩

谢谢!

1 个答案:

答案 0 :(得分:4)

在动作中引用HTTP元素被认为是“uncool”,但它变得必要......

org.apache.struts2.interceptor.
                         ServletRequestAware.setServletRequest(HttpServletRequest request);

实现接口,创建一个HttpServletRequest成员变量,然后将您的成员变量设置为上面实现的setter中的请求。现在您有了请求,您可以执行request.getHeader("referer")

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