It sounds like using a Filter would be easier. With a filter - you can use the Servlet API to get a Dispatcher for the servlet you wish to call. For example, this filter reroute all requests to FooServlet:

package more.cowbell;

import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;

public class ReRouteFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {
        ;
    }

   public void doFilter(ServletRequest request,
                        ServletResponse response,
                        FilterChain chain)
              throws IOException, ServletException {
      request.getRequestDispatcher("/FooServlet").forward(request, response);
   }

   public void destroy() {
       ;
   }
}

-----------
Then in $CATALINA_HOME/conf/web.xml
    <filter>
        <filter-name>ReRoute Filter</filter-name>
        <filter-class>more.cowbell.ReRouteFilter</filter-class>
    </filter>
    <!-- Trap everything going to the default servlet-->
    <filter-mapping>
        <filter-name>ReRoute Filter</filter-name>
        <servlet-name>default</servlet-name>
    </filter-mapping>
    <!-- Trap by file extension html-->
    <filter-mapping>
        <filter-name>ReRoute Filter</filter-name>
        <url-pattern>*.html</url-pattern>
    </filter-mapping>
-----------

-Tim

Chippada, Sreeni wrote:

Hi Tim,
        Thanks for your reply.
        I know how to create a valve. But I do not know how to execute a
servlet from a valve. I will be glad if you can you can tell me how to ro
point me to appropriate resources.

        Also, I do not know how to configure the filters in the server.xml.
Appreciate any help.

Thanks,
Sreeni

-----Original Message-----
From: Tim Funk [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 18, 2004 7:50 AM
To: Tomcat Users List
Subject: Re: Is it possible to intercept all requests and be serviced by a
ser vlet?


You can use a Valve.

Or you can use a Filter configured in $CATALINA_HOME/conf/server.xml and the

class would live in the common/ classloader

-Tim

Chippada, Sreeni wrote:

Hi,
    I am using Tomcat 5. I need all the requests be serviced by a
particular servlet irrespective of the web apps deployed. Is there a way

to

do it?


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to