I had posted this to the Tomcat user, but it seems appropriate.... I recently completed a cutover of moderately sized app from Resin to Tomcat and just wanted to put my experiences somewhere for posterity. First Resin allows out of order xml documents. Tomcat goes by the book with xml. So web.xml, struts-config.xml and any other xml files you have must but well structured satisfy the DTD. With Resin it is very easy to get away from the DTD requirements. The second issue is that resin is very creative about the tld's. You can be sloppy in both the jsp files and the web.inf about where they are and in most cases resin will find them. Moving to tomcat you will find any that are mislocated. If there are tld's inside of jar files, resin finds them with basic syntax. Tomcat needs the full taglib uri in order to find a tld inside a jar. Resin allows you to mix and match xml formated jsp files with standard format jsp files. In tomcat you really should stick to one format or the other. When making your choice which format to use, remember in xml format you cannot use jsp expressions as attribute values. Also, in tomcat with the xml format, the assumed page contentType is text/xml, in Resin it is text/html. Resin allows attribute specification in xml files without quotes, tomcat does not. Resin allows standard jsp scriptlets inside xml files, tomcat does not. Resin custom tag lifespan is different than Tomcat. Tomcat keeps them alive until memory or some other issue forces a release. Resin dumps the custom tags when the page has completed processing. Keep this in mind if you share information between tags, you keep counters in tags, or you have tags that are instantiated with various numbers of parameters. The choices that Tomcat makes when to instantiate a new tag instance vary slightly from Resin as well. For example I was keeping counters and the they broke in two ways, the Tomcat tag pooling kept the counters running from page to page and the variations of when to instantiate zeroed the counters unexpectedly. The last major difference between Tomcat and Resin is that if cookies are enabled Resin assigns the session even if container managed security is not used. The effect is that if a link is entered manually from the address line in Tomcat it is assigned a new session. In any event, if you are developing under Resin and want to deploy on some other container, beware that it lets you do lots of non standard stuff.
Edgar