You need a Java servlet container, the most popular free option being Apache Tomcat, and the Java JDK. If you only need to support a JSP/servlet based application, Tomcat will probably suffice; the price is right and there is a ton of information out there available on it. If you need to support any of the J2EE extensions (Java 2, Enterprise Edition), a J2EE-cerified application server such as JBoss, Weblogic, Websphere, Pramati, etc. is required. My personal favorite Java application server is Caucho's Resin, which has a free, fairly featured open source version and a full featured commercial version available at a very reasonable $500/server, especially considering it's top notch clustering features.
I'm not that familiar with Lighttpd, but I do know it is not a Java servlet container. People typically use Apache in front of Tomcat to service HTTP requests using the mod_jk extension, but I've never seen Lighttpd used this way. Not to say it isn't possible, but you'll probably find a lot less information available. In addition to Apache, I've personally seen IIS and the Netscape/iPlanet web server used with Tomcat, but that's about it. You might check here: