Hi all... I've created a site that is loosely based on the principles described in the Wrox "Beginning JSP" book example of a tourism site. I.e, using Tomcat user athentification defined in the servers config file, struts, and with a database pool defined in the web.xml of the web application connecting to a MySQL db. My question is, will hosting companies support this type of configuration? Adding entries to the server config seems like quite a high level thing to be doing every time a site requiring form based authentication is hosted? Any suggestions on hosts that will allow this would also be very helpful...
"JSP" or "single application" hosting. This is the lowest form of Java hosting, typically offered by resellers using the "ensim" or "plesk" hosting reseller software. A single servlet/JSP container is centrally configured to define a single web application directory structure for each customer. In this sort of setup you don't even get to deploy applications from war files, or host more than one application at once. This is only really suitable if you just want to play with JSPs, tags and beans.
"Shared VM" or "multi-application" hosting. The next level of hosting allows you to deploy your own web applications, and sometimes to restart the shared VM. Beware, though, that some hosting companies use the term "shared VM" to mean JSP/single-application - so check their support information for topics like authentication, and war files. In my experience some servlet containers work better for this than others. Resin is typically much better than Tomcat at working this way. In particular, a lot of the stuff that has to be set up in a central config file for Tomcat, can be done on a per-application level for Resin.
"Own VM". In this approach you have full control of the Java virtual machine and the servlet container running in it. Typically the hosting company runs a single Apache "front door" server, which hands off requests for your domain(s) to your own servlet container. This is much more flexible than the shared-VM approach, and allows you to reconfigure and restart the VM and the servlet container whenever you like.
"Own Machine" or "dedicated". In this approach you have full control of the machine. This allows you to dispense with the Apache "front door" server if you like, and serve all your sites direct from the Java server. This also allows you to tinker with operating system settings, run different servers on different ports and so on. If you know what you want to do, this is the ultimate way to achieve it. For more information on this topic, and some reviews and recommendations of Java hosting companies, see thejava hosting page on my web site.