J2EE is overkill for 99% of the projects out there. JBuilder + JSP + something like Struts is more akin to .NET. If you need multiple servers, use shared sessions or JMS to parcel things out. Something like Orion Server or OC4J even has a (more flexible) page fragment caching than .NET as well.
I gave up on J2EE long ago. What a clusterfsck. EJBs are sorry, sorry little pathetic things.