4

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

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

我相信你会说,我对 Struts 很陌生。我确实花了三个多小时阅读 Java 文档、谷歌搜索,并试图避免对我这个菜鸟畏缩的愤怒

谢谢!

4

1 回答 1

5

在操作中引用 HTTP 元素被认为“不酷”,但它变得有必要......

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

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

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

于 2009-10-24T17:53:21.950 回答