<p>In tomcat 6 i have a servlet running openbluedragon, everything compiles and servers up quik, with the exception of images, they really lag significantly.  Any suggestions optimization for image serving?</p>

<p>Here is my server.xml:</p>

<pre><code>    &lt;Service name="Catalina"&gt;

      &lt;Connector port="8009" protocol="AJP/1.3" /&gt;
      &lt;Connector port="8080" maxThreads="100" protocol="HTTP/1.1" connectionTimeout="20000" /&gt;
      &lt;Engine name="Standalone" defaultHost="hostname.whatever" jvmRoute="ajp13"&gt;

      &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/&gt;
      &lt;Host name="hostname.whatever"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"&gt;
        ...context
      &lt;/Host&gt;

    &lt;/Engine&gt;
  &lt;/Service&gt;
</code></pre>

If you have the option, you could add a reverse proxy in advance of your application.  At work I have an Apache web server that receives all inbound HTTP connections.  Based on the URL, it either forwards the request to another server or serves up the content itself.  I've used this approach to accelerate serving up static content for a Trac site.  The ProxyPass and ProxyPassReverse directives are a good place to start looking if you want to go this route.
As a simple example, if you have a virtual directory called /images, Apache could serve up any request for something in that directory and forward everything else to your Tomcat instance.  The syntax is pretty comprehensive.  If there is any method at all to the way your static content is identified this is an approach that will work.
Apache isn't the only choice here.  I think all modern web servers include similar functionality.  If I was starting today I'd probably look at LigHTTPd instead, just because it does less.
There may even be caching reverse proxies that figure this out for you automatically.  I'm not familiar with any of them though.