tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Turner <tomcat-u...@johnturner.com>
Subject Re: setting up a root servlet / getting images to appear in Tomcat 4.1.24
Date Wed, 09 Jul 2003 20:31:22 GMT

OK.  I still don't get it, but I don't want to prolong the thread.

Thanks for the info.

John

On Wed, 9 Jul 2003 16:30:08 -0400, Mark Biciunas <mark.biciunas@agorex.com> 
wrote:

> It became necessary only when we tried to create a servlet that is 
> accessed
> without any path information (ie: www.mysite.com instead of
> www.mysite.com/myservlet).  Of course, if you have specified a static 
> html
> page as the welcoming page to your site, you may never need to access a
> servlet without a path.  In our case, we have no static html, everything 
> is
> generated on the fly with servlets, so we ran into the problem.
>
> 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 4:18 PM
> Subject: Re: setting up a root servlet / getting images to appear in 
> Tomcat
> 4.1.24
>
>
>>
>> I'm just trying to understand why it was necessary.
>>
>> Our apps have mixed content, and we did not have to configure things as
>> you've described.
>>
>> John
>>
>> On Wed, 9 Jul 2003 16:04:06 -0400, Mark Biciunas
> <mark.biciunas@agorex.com>
>> wrote:
>>
>> > As I understand it, the servlet will receive all requests other than
>> > those
>> > that have been re-routed through servlet-mappings.
>> >
>> > Just out of curiosity, do you see a problem with this approach?
>> >
>> > Mark Biciunas
>> > Agorex Inc
>> > (905) 274-6785
>> > 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:57 PM
>> > Subject: Re: setting up a root servlet / getting images to appear in
>> > Tomcat
>> > 4.1.24
>> >
>> >
>> >>
>> >> So you have a servlet that is intercepting all requests, other than
>> >> image
>> >> requests?
>> >>
>> >> John
>> >>
>> >> On Wed, 9 Jul 2003 15:55:21 -0400, Mark Biciunas
>> > <mark.biciunas@agorex.com>
>> >> wrote:
>> >>
>> >> > 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
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> 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
>> >
>> >
>>
>>
>>
>> --
>> 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
>
>



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


Mime
View raw message