2010-06-09 15 views
7

के साथ HTTP शीर्षलेख सेट करना Jetty 6.1 में HTTP शीर्षलेख (फ़ाइल नाम पैटर्न के आधार पर) सेट करने का सबसे अच्छा तरीका क्या है? क्या जेटी.एक्सएमएल (या जेट्टी-वेब.एक्सएमएल) के माध्यम से यह संभव है? या मुझे web.xml को संशोधित करना है?जेटी

<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> रों के साथ और अधिक विन्यास बनाया जा सकता है):

उत्तर

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> 
+0

लिंक मर गए हैं – Rushil

8

मेरे सवाल का सामान्य जवाब निश्चित रूप से यह एक है।

लेकिन जेटी में यह पूरी तरह से घोषणा करने का कोई तरीका नहीं है?

+0

जब तक किसी को पता चल गया है कि कैसे एलान के तौर पर यह करने के लिए स्वीकार किए जाते हैं। –

संबंधित मुद्दे