Каков наилучший способ установки заголовков HTTP (на основе шаблонов имен файлов) в Jetty 6.1? Возможно ли это с помощью jetty.xml (или jetty-web.xml)? Или мне нужно изменить web.xml?Настройка HTTP-заголовков с Jetty
ответ
Вы можете добавить заголовки по конфигурации. В 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>
Общий ответ на мой вопрос, конечно, это:
<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 веб-контейнер (и может быть придан более конфигурируемый с <init-param>
с).
Но разве нет способа сделать это чисто декларативно в Jetty?
Принимается, пока кто-нибудь не узнает, как сделать это декларативно. –
Существует способ добавления заголовка в причал. используя java.lang.instrument и javassist. см ссылку для подробностей:
http://hunmr.blogspot.com/2012/12/mock-jetty-behavior-adding-customized.html
- 1. Настройка Jetty в Eclipse
- 2. Настройка SSL на Jetty
- 3. Настройка Jetty в Spring Boot с использованием обычного Jetty XML
- 4. настройка maxFormContentSize в jetty/solr
- 5. Настройка приложения Jetty с переменными env
- 6. Настройка Jax-rs 2.2 с помощью Jetty
- 7. Настройка заголовков с использованием Jetty Websocket Client
- 8. Настройка Jetty 7 с JSP-движком
- 9. Настройка сервера Jetty с сервлетом Glassfish
- 10. Настройка JSP с SpringMVC + Embedded Jetty + Gradle
- 11. Настройка HttpConfiguration Jetty с помощью Spring Boot
- 12. Настройка аутентификации JDBC в Jetty
- 13. Trouble Настройка JPA в Jetty
- 14. Приложение Scalatra на Openshift - настройка Jetty IP
- 15. jetty 9: настройка самого базового SSL/https
- 16. Jetty 9: Настройка обработчиков и разъемов
- 17. Настройка отдельного Исполнителя на ServerConnector в Jetty
- 18. Eclipse: настройка Jetty 8 в Eclipse.
- 19. Настройка клиента Jetty WebSocket для использования прокси
- 20. Настройка встроенной Jetty war из classpath
- 21. Jetty Настройка сервлета для связи с JSP Страница
- 22. Настройка внешней конфигурации регистрации Webapp с Jetty и log4j
- 23. Настройка Solr с Jetty вопроса на Centos 6
- 24. Настройка фильтра Gzip с Jetty 9 (или 7) и Grails
- 25. Настройка безопасного сервера WebSocket с Jetty и JavaScript клиента
- 26. Настройка CORS в HTTPService от Felix (с поддержкой Jetty)
- 27. Перемещение с Jetty 6 на Jetty 8
- 28. I-Jetty или Jetty
- 29. Встраивание Jetty 9 и настройка Socket Address, Port и ThreadPool?
- 30. Jetty: настройка SSL-коннектора только для обслуживания определенных ресурсов
Ссылки мертвы – Rushil