Exactly, Paul. We do the same thing where I work. Apache is geared specifically for serving static content (well, originally, and it still excels at it), and does it more cheaply than application servers. Given that most web pages (a single appserver request) will contain many pieces of static content (images, javascripts, css files, etc), you'll want more web servers than application servers.
You'll certainly need to do load
testing to see what ratio you need. And as mentioned, you can load balance across the web servers and yet still peg each user to a single application server to take advantage of session caching.
Of course, the latest trend is to move away from EJB containers to servlet containers like Tomcat. This is precisely what we are about to embark upon. The main reason is the huge licensing costs of WebLogic and complexity. Tomcat+Spring+Hibernate is a very effective combination.