Regarding pure speed, I suggest to read the Myth or truth: One should always use Apache httpd in front of Apache Tomcat to improve performance? blog post. Let me quote it partially:
The short answer is that this is a
myth. The longer answer is that back
in the days of Tomcat 3 there was some
truth to this depending on
circumstances. However, for the
versions of Tomcat in use today (5.5.x
and 6.0.x) then there is no need to
use httpd for purely performance
reasons. Tomcat now supports the
native/APR connector which uses the
same native library (the Apache
Portable Runtime—APR) as httpd for the
low-level I/O and therefore can
achieve similar performance to httpd.
When serving static content there is
ever so slightly more overhead when
using Tomcat compared to httpd but the
differences are so small they are
unlikely to be noticeable in
production systems.
...
The performance testing performed
by Christopher Schultz, a regular on
the Tomcat users mailing list, used a
wider range of file sizes and provides
– in my view – better results. The
results of his tests are shown in the
graph below.
These results are much more in line
with what is expected, although there
are a few interesting points to note:
- Apache httpd and Coyote APR/native show similar performance
levels.
- Coyote NIO isn't too far behind httpd and Coyote APR/native.
- There appears to be a limit on the usefulness of sendfile. This may be a
hardware limitation but is worthy of
further attention. I've added this to
my todo list.
- For small file sizes (less than ~10KiB) the static file caching in
Tomcat provides a significant
performance boost.
...
While raw performance for static
content may not be a good reason to
use httpd, there are a number of good
reasons why you might want to use
httpd with Tomcat. The most frequent
reason is to provide load-balancing to
two or more Tomcat instances. httpd
isn't the only option to so this -
hardware load balancers or other
reverse proxies can be used - but it
is a popular choice amongst system
administrators as many of them are
already familiar with httpd. I'll
write more on using httpd as a
load-balancer in a future article.
...
Well worth the read.
That being said, using a web server in front of Tomcat to serve static content will obviously free up more power for dynamic content and is thus my favorite option.