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

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

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

谢谢!

有帮助吗?

解决方案

它被认为是“不冷静”的引用动作中的HTTP元素,但是有必要......

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top