在Jetty 6.1中設置HTTP標頭(基於文件名模式)的最佳方式是什麼?是否可以通過jetty.xml(或jetty-web.xml)?或者我必須修改web.xml?使用Jetty設置HTTP標頭
7
A
回答
8
您可以按配置添加標題。在的jetty.xml,把下面的例子:
<New id="RewriteHandler" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
<Set name="rules">
<Array type="org.eclipse.jetty.rewrite.handler.Rule">
<Item>
<New id="header" class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
<Set name="pattern">*.jsp</Set>
<Set name="name">myheader</Set>
<Set name="value">the value of myheader</Set>
</New>
</Item>
</Array>
</Set>
</New>
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<Ref id="RewriteHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
對什麼是可能的更多例子見RewriteHandler api(它已經可以在Jetty 6 RewriteHandler)
的信息,這裏是碼頭插件我Maven的配置:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.5.v20120716</version>
<configuration>
<jettyXml>${basedir}/src/main/etc/jetty.xml</jettyXml>
</configuration>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
<version>8.1.5.v20120716</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-rewrite</artifactId>
<version>8.1.5.v20120716</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
8
通用給我的回答是當然,這個的:
<web-app>
<filter>
<filter-name>headersFilter</filter-name>
<filter-class>com.example.MyHeadersFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>headersFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
...
</web-app>
public class MyHeadersFilter implements Filter {
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain)
throws IOException,
ServletException {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
final HttpServletResponse httpResponse = (HttpServletResponse) response;
final String requestUri = httpRequest.getRequestURI();
if (requestUri.matches(...)) {
httpResponse.addHeader(...);
}
chain.doFilter(request, response);
}
}
這應該在任何JavaEE的Web容器中工作(並且可以由多個可配置與<init-param>
S)。
但是沒有辦法在Jetty中完全聲明這樣做嗎?
+0
接受,直到有人發現了怎麼辦呢聲明。 – 2010-06-12 18:23:12
0
有一種方法可以在jetty中添加標題。 使用java.lang.instrument和javassist。請參閱有關詳細信息,下面的鏈接:
http://hunmr.blogspot.com/2012/12/mock-jetty-behavior-adding-customized.html
相關問題
- 1. Jmeter - 使用csv設置http標頭
- 2. 使用Jboss6.1設置Http頭
- 3. 設置http標頭asihttprequest
- 4. 如何在使用response.addCookie時停止Jetty更改HTTP Expires標頭?
- 5. 使用PHP設置HTTP標頭爲UTF-8使用PHP
- 6. SoapClient設置自定義HTTP標頭
- 7. 設置HTTP代理以插入標頭
- 8. 在ClientWebSocket中設置「User-Agent」HTTP標頭
- 9. 在角2設置http標頭
- 10. 在InputStreamEntity中設置HTTP標頭
- 11. 從Firefox擴展中設置HTTP標頭
- 12. 通過Axis2 API設置HTTP標頭
- 13. NSURL請求設置HTTP標頭
- 14. 設置http請求消息標頭ios
- 15. SDWebImage並設置自定義HTTP標頭?
- 16. 在Play 2.0(scala)中設置HTTP標頭?
- 17. 廣東話設置HTTP標頭PHP
- 18. 問題與HTTP標頭設置
- 19. 你可以設置HTTP標頭髮布
- 20. 如何在使用PhoneGap的FileTransfer()。download()時設置HTTP標頭?
- 21. 如何使用Flex RemoteObject方法設置HTTP標頭?
- 22. 使用基本身份驗證密鑰設置http標頭
- 23. 如何使用Amazon S3存儲桶策略設置HTTP標頭?
- 24. 使用WireMock作爲響應設置Content-Length HTTP標頭
- 25. 碼頭9 - 如何使用Jetty 9設置「請求內容」和「請求標題」?
- 26. recv() - 使用HTTP標頭
- 27. 爲Rails設置HTTP頭form_for
- 28. 在DelegatingFilterProxy中設置HTTP頭
- 29. HTTP頭自動設置
- 30. 的Apache CXF - 設置HTTP頭
鏈接已死 – Rushil 2018-02-13 19:12:16