Title: Funguje: Pridat http header

Dekuji Petru Ferschmannovi

Funguje - request wrapper se tvari, ze SOAPAction header existuje (a nasledujici AXIS servlet uz nema problem):

public class TriggerFilter implements Filter {
    private static String soapActionHeader = "SOAPAction";

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest httpReq = (HttpServletRequest)request;

        if (httpReq.getHeader(soapActionHeader) == null)
        {
            // provide request wrapper, which returns SOAP action header
            httpReq = new TriggerRequest(httpReq);
        }

        chain.doFilter(httpReq, response);
    }

...
    class TriggerRequest extends HttpServletRequestWrapper {
        TriggerRequest (HttpServletRequest request)
        {
            super(request);
        }

        public String getHeader(String name)
        {
            if (name.equals(soapActionHeader)) { return ""; }

            return super.getHeader(name);
        }
    }

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Petr Ferschmann
Sent: Tuesday, April 18, 2006 10:43 AM
To: Java
Subject: Re: Pridat http header

Dobrý den,

vy, ale ve filtru můžete vytvořit nový request, v něm upravit co
potřebujete a zbytek metod předat původnímu requestu. Tj. vytvoříte
proxy.

S pozdravem

Petr Ferschmann

Havelka, Raimund píše v Út 18. 04. 2006 v 10:04 +0200:
> Ahoj,
> jak zmenit URL jsem nasel viz. attach.

> Me trapi, jak pridat do requestu http header:
> Kdyz pouziji Filter/Servlet, tak HTTP request menit nemuzu (krome URL
> a parameters);
>
> Muzete, prosim, poradit?
>
> Raimund
>
> Apache umi modifikovat header. Ma v konfiguraci direktivu:
> RequestHeader set/add/...
>
> V Tomcatu jsem to nenasel ...
>

>
>


>
>
>
>
>                                                                      
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> On Behalf Of Martin Majer
> Sent: Sunday, April 16, 2006 6:53 PM
> To: Java
> Subject: Změna URL
>
>
>
>
> Ahoj,
> mám URL třeba http://www.adresa.cz/view/test a potřeboval bych ho
> nějak změnit na http://www.adresa.cz/view?show=test. Jak se to dá
> udělat? Pomocí servlet filtrů?
> E-mailová zpráva příloha
>
> > -------- Přeposlaná zpráva --------
> > Od: Havelka, Raimund <[EMAIL PROTECTED]>
> > Komu: Java <[email protected]>, Martin Majer <[EMAIL PROTECTED]>
> > Předmět: RE: Změna URL
> > Datum: Tue, 18 Apr 2006 08:21:06 +0200
> >
> >
> > Ahoj, ve filtru se muze zmenit URL:
> > 
> > filter class:
> > 
> > public class TriggerFilter implements Filter {
> >
> >     /**
> >      * @param request the current request
> >      * @param response the current response
> >      * @param chain request handler chain
> >      * @exception java.io.IOException
> >      * @exception javax.servlet.ServletException */
> >     public void doFilter(ServletRequest request, ServletResponse
> > response, FilterChain chain) throws IOException, ServletException {
> > 
> >          HttpServletRequest httpReq = (HttpServletRequest) request;
> > 
> >         StringBuffer regUrl = httpReq.getRequestURL();
> >        
> >         reqUrl = ...
> >
> >         chain.doFilter(request, response);
> >     }
> > 
> > 
> > web.xml:
> >     <filter>
> >         <filter-name>TriggerFilter</filter-name>
> >
> > <filter-class>provgw.triggerhandler.TriggerFilter</filter-class>
> >     </filter>
> > 
> >     <filter-mapping>
> >         <filter-name>TriggerFilter</filter-name>
> >         <servlet-name>AxisServlet</servlet-name>
> >     </filter-mapping>
> > 
> >     <filter-mapping>
> >         <filter-name>TriggerFilter</filter-name>
> >         <url-pattern>/services/TriggerHandlerService</url-pattern>
> >     </filter-mapping>
> > 
> > 
> > doc:
> > javax.servlet.http
> > Interface HttpServletRequest
> > getRequestURL
> >
> > public java.lang.StringBuffer getRequestURL()
> >         Reconstructs the URL the client used to make the request.
> >         The returned URL contains a protocol, server name, port
> >         number, and server path, but it does not include query
> >         string parameters.
> >        
> >         Because this method returns a StringBuffer, not a string,
> >         you can modify the URL easily, for example, to append query
> >         parameters. 
> >        
> >         This method is useful for creating redirect messages and for
> >         reporting errors.
> >        
> > Returns:
> >         a StringBuffer object containing the reconstructed URL
> >
> >
> >
> >                                                                    
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > On Behalf Of Martin Majer
> > Sent: Sunday, April 16, 2006 6:53 PM
> > To: Java
> > Subject: Změna URL
> >
> >
> >
> >
> > Ahoj,
> > mám URL třeba http://www.adresa.cz/view/test a potřeboval bych ho
> > nějak změnit na http://www.adresa.cz/view?show=test. Jak se to dá
> > udělat? Pomocí servlet filtrů?

--
Petr Ferschmann

SoftEU s.r.o.
-----------------------------------
Sady Petatricatniku 31
301 00 Plzen
Czech Republic
-----------------------------------
Phone: +420 373 729 300
Fax:   +420 373 729 301
Cell:  +420 775 638 008

Odpovedet emailem