It really depends on the situation and application design. in the simplest case, there is no need for session sharing. in this case it is very easy to select a web server the first time a user enters the application. Here you can find more information:
tomcat.apache.org/.../balancer-howto.html
tomcat.apache.org/.../cluster-howto.html
in most cases that is enough. in case sessions should be shared, you need to enforce some consideration in your application design.
Surely you need to also consider database, which is usually used by all clustered web servers and could not be easily clustered. you need to use DB clustering like Oracle RAC (efficient up to 4 instances) and partitioning in that part.