tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Biciunas" <mark.biciu...@agorex.com>
Subject Re: setting up a root servlet / getting images to appear in Tomcat 4.1.24
Date Wed, 09 Jul 2003 19:55:21 GMT
Actually, the point of the article is to explain how NOT to deliver the
images via the servlet and to allow Tomcat to serve images normally -
something that doesn't happen if you are using a root context.

It is only when you configure server.xml  with a blank context path (ie:
<Context path="" docBase="myservlet" debug="0"/>) that you run into this
problem.  If you specify a path (ie: <Context path="myservlet"
docBase="myservlet" debug="0"/> then the problem doesn't appear.

Hope this helps,

Mark Biciunas
mark.biciunas@agorex.com
----- Original Message -----
From: "John Turner" <tomcat-user@johnturner.com>
To: "Tomcat Users List" <tomcat-user@jakarta.apache.org>
Sent: Wednesday, July 09, 2003 3:19 PM
Subject: Re: setting up a root servlet / getting images to appear in Tomcat
4.1.24


>
> Just so I'm clear....you want to deliver the images via the servlet?  I'm
> missing why you have to declare the MIME types of images at all...Tomcat
is
> perfectly capable of serving them in a standard HTTP/1.1 manner without
any
> intervention from a servlet, and without any additional configuration.
>
> John
>
> On Wed, 9 Jul 2003 15:19:48 -0400, Mark Biciunas
<mark.biciunas@agorex.com>
> wrote:
>
> > This email formally presents what I have learned over the past couple
> > days
> > about setting up a servlet to be accessed as root (ie: www.myservlet.com
> > instead of www.myservlet.com/somepath) without loosing access to images
> > and
> > other mime types.  It is based primarily on advice received from Bill
> > Barker
> > and Stefan Radzom as well as the hints and suggestions of many others.
> > As
> > you are looking at this solution, please bear in mind that I am not an
> > expert in Tomcat configuration and there is likely a lot of things I
have
> > missed.  I welcome any additional advice / corrections people have to
> > offer.
> >
> >
> > Setting up a servlet to be accessed without a path (ie:
> > www.myservlet.com)
> > is fairly easy if you pay attention to a couple of extra steps.  First
> > this
> > is to deploy your application in the webapps directory as usual (ie:
> > webapps/myservlet).  Next, update conf/servlet.xml so that you have a
> > root
> > context that looks like:
> >
> > <Context path="" docBase="myservlet" debug="0"/>
> >
> > This will tell tomcat to serve ALL incoming requests to your servlet,
> > including requests for images, etc.  If your servlet is not set up to
> > handle
> > mime types, then your images, etc. will seem to disappear.  To make sure
> > the
> > images, etc. are handled correctly, you need to map them out in your
> > WEB-INF/web.xml as follows:
> >
> > <servlet>
> > <servlet-name>myservlet</servlet-name>
> > <servlet-class>mypackage.MyServlet</servlet-class>
> > </servlet>
> >
> > <servlet-mapping>
> > <servlet-name>myservlet</servlet-name>
> > <url-pattern>/</url-pattern>
> > </servlet-mapping>
> >
> > <servlet-mapping>
> > <servlet-name>default</servlet-name>
> > <url-pattern>*.gif</url-pattern>
> > </servlet-mapping>
> >
> > <servlet-mapping>
> > <servlet-name>default</servlet-name>
> > <url-pattern>*.jpg</url-pattern>
> > </servlet-mapping>
> >
> > What is happining here in the first two sections is that you have
> > identified
> > the servlet class and mapping for your servlet.  This is more or less
the
> > same as you would do for any servlet.  If you do nothing more than this,
> > your servlet will (should) work, but you will not see any images since
> > picture.gif would match to a url-pattern of "/" and get sent to your
> > servlet
> > for processing.
> >
> > In the second two sections, we are telling Tomcat that anything that
> > matches
> > a pattern of *.gif or *.jpg should be sent to the default servlet.  Now
> > any
> > requests that match *.gif or *.jpg will be handled correctly.  If you
> > need
> > to support more mime types, simply create more servlet mappings.
> >
> > Where did the default servlet come from?  It is already configured in
> > conf/web.xml.  Remember that conf/web.xml is automatically read before
> > your
> > WEB-INF/web.xml  so it can do it's thing without you having to worry
> > about
> > it at all.  The trick is to use url-patterns to send requests back to
the
> > default servlet so that they don't end up in your servlet.
> >
> > The above solution will work great as long as you don't have to many
mime
> > types to deal with.  If you need to handle lots of diferent types of
> > requests, then Bill Barker presented the following alternate solution
> > which
> > involves changing your servlet code to redirect requests:
> >
> > URL file = getServletContext().getResource(request.getPathInfo());
> > if( file != null ) { // physical resource exists
> > RequestDispatcher rd =
> > getServletContext().getNamedDispatcher("default");
> > rd.forward(request, response);
> > return;
> > }
> > // Your code here.
> >
> > I have not tried this solution so I do not know to much about it.  It
> > seems
> > staightforward enough though, so I would expect it to work great.
> >
> >
> > Mark Biciunas
> > mark.biciunas@agorex.com
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> >
> >
>
>
>
> --
> Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message