【发布时间】:2019-09-06 08:16:37
【问题描述】:
我想在我编写的拦截器中查看对网页的请求。我将根据传入请求中的一些值更改我的响应值。我将使用类似的东西;
String ex = request.getHeader("GET");
if(ex.contains("addHeader("a","example")"));
response.setHeader("a","null");
这是我的 index.ft:
Your name: <@s.url value="${name}"/>
Enter your name here:<br/>
<form action="" method="get">
<input type="text" name="name" value="" />
<input type="submit" value="Submit" />
</form>
这是我的 TestInterceptor.java 类的一部分;
public class TestInterceptor implements Interceptor {
....
@Override
public String intercept(ActionInvocation ai) throws Exception {
System.out.println("before");
//the area where I want to write the codes I want to use above
// I can't to reach request.getHeader(...) function in here
String result = ai.invoke();
System.out.println("after");
return result;
}
使用该功能的解决方案或其他方式是什么。 感谢您的帮助。 注意:我使用的是 Struts 框架
【问题讨论】:
-
FWIW:这类问题几乎总是可以通过一点点研究自行回答。花几分钟学习 Javadocs 会找到答案。
-
我同样厌倦了那些不遵循 Javadocs(点击 2-4 次即可获得答案)或破解打开现有拦截器只是 look 的人在它。事情是这样的:您可以通过跟踪文档和代码来解决它。这几乎是每个开发人员都需要的三项技能之一:跟踪能力。 (另外两个是正则表达式和递归。)
-
此外,除了忽略阅读 Javadocs 和/或代码时的尽职调查之外,在网络上搜索“struts 2 拦截器访问请求标头”会导致多个答案,包括 SO,这使得问题成为反正都是骗人的。所以每个开发者都需要四项技能,加上“搜索网络”。
-
你完全正确 :)) 步行上班
-
为我骑自行车 ;) 请不要对我的 cmets 做出负面解释——它们是为了帮助,而不是伤害。我还将更新一些 S2 文档,以更直接、更清晰地包含这些信息。
标签: java struts2 interceptor struts2-interceptors