Was ist der beste Weg, HTTP-Header (basierend auf Dateinamenmustern) in Jetty 6.1 zu setzen? Ist es möglich über die Datei "jetty.xml" (oder "jetty-web.xml")? Oder muss ich web.xml ändern?HTTP-Header mit Jetty setzen
Antwort
Sie können Kopfzeilen nach Konfiguration hinzufügen. In jetty.xml, das folgende Beispiel setzen:
<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>
Siehe RewriteHandler api für weitere Beispiele von dem, was möglich ist (es war bereits in Jetty 6 RewriteHandler)
Informationen, hier ist meine Maven-Konfiguration der Anlegestelle Plugin:
<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>
Die allgemeine Antwort auf meine Frage ist natürlich diese:
<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);
}
}
Diese in jedem JavaEE Web-Container funktionieren sollte (und kann mit <init-param>
s mehr konfigurierbar gemacht werden).
Aber gibt es nicht eine Möglichkeit, dies rein deklarativ in Jetty zu tun?
akzeptiert, bis jemand herausfindet, wie es deklarativ zu tun. –
Es gibt eine Möglichkeit, Header in Jetty hinzuzufügen. mit java.lang.instrument und javassist. siehe folgenden Link für Details:
http://hunmr.blogspot.com/2012/12/mock-jetty-behavior-adding-customized.html
- 1. Guice inject httpheader
- 2. So senden Sie HTTPHeader mit QT WebEngine?
- 3. Wie man eine HTTP-Http bekommen und setzen Sie httpHeader in Swift?
- 4. https Servlet mit Jetty
- 5. Running Solr mit Jetty
- 6. Jetty Deployment Order
- 7. Jetty HTTP Client mit SSL
- 8. Fremdheit mit Jetty Serving Bilder
- 9. java.lang.OutOfMemoryError: PermGen Raumfehler mit Jetty
- 10. SPDY "Hello Server" mit Jetty
- 11. Verwenden von ServletContextListener mit Jetty
- 12. Embedding Jetty 9 - Wo ist Jetty-all.jar?
- 13. Jetty - Systemeigenschaft einstellen
- 14. Jetty HashSessionManager
- 15. Jetty Startverzögerung
- 16. Ein Servlet programmgesteuert mit Jetty implementieren
- 17. Jetty IdleTimeout
- 18. Embedded Jetty und Slf4j Konfigurationen
- 19. Java/Jetty: Wie Filter zu Embedded Jetty hinzufügen
- 20. Jetty 9 Handler Beispiele?
- 21. Einführung Jetty 9 Programmatically
- 22. Jetty Startverzögerung aufgrund Scan
- 23. Serving statische Dateien mit eingebetteten Jetty
- 24. Jetty 6: Statischer Inhalt mit Verzeichnisliste
- 25. Allgemein Encoder und Decoder mit Jetty Websockets
- 26. Autoreload in Jetty mit Gradle und Kotlin
- 27. Sparkjava mit einem Jetty gibt 404
- 28. Ausführen einer Webanwendung (WAR) mit eingebettetem Jetty
- 29. Embedded Jetty liefert statischen Inhalt mit Formularauthentifizierung
- 30. basic Jersey webservice mit maven jetty plugin
Die Links sind tot – Rushil