You might want to start off by learning the basics of Servlets and JSP. Those are the building blocks for web application frameworks.
I wouldn't spend too much time on Servlets beyond an understanding of how they generally work. Most of the heavy lifting is done by web app frameworks these days.
Once you're familiar with the basics of how Java serves things up as a web page, move on to more sophisticated frameworks such as JSF, Spring Web MVC or Struts. These frameworks all utilize the MVC design pattern, which you may have used with PHP frameworks (if not, it's a very good principle to learn). All of those projects are well-documented and have a sizable community.
As a note, I feel that JSF has a steeper learning curve than either Spring or Struts. If you are that interested in JSF, I recommend looking into the Seam framework, which utilizes JSF but also somewhat simplifies its use. You can learn JSF+Seam concurrently.
As for books... for JSF, I like Core JavaServer Faces. For Spring, I like Spring in Action.