Some businesses offer Tomcat web hosting (JSP/Servlets) although I'd cautioned against it unless it also offers a dedicated JVM/Server. It's not hard for one Tomcat instance to kill another, and it a shared hosting environment, you'll constantly be watching as your neighbors kill or overload the server.
As for true J2EE (EJB/Hibernate/Spring) hosting, I don't see very often. To be honest, only businesses tend to use large J2EE infrastructures for their code, and businesses tend to setup their own highly configured servers. The rule of thumb is if you need it for small 1-developer applications, then you probably shouldn't be using J2EE in the first place since the overhead isn't buying you anything.
And lastly about price... for hosting you get what you pay for. If you find a host (cough cough bluehost cough cough) that offers cheap hosting I can guarantee you there's a 'fine print' (cough cough nearly unlimited quota and storage, but there a quota on CPU usage cough cough).
I gave up shared hosting long ago and do private server hosting. Significantly less headaches.