If you've got a good grasp of HTML, CSS, and JavaScript, you have a leg up on many people who end up doing web development. The concepts behind JSP are very similar to PHP. The quirks are different. A servlet is the name for a chunk of Java code that serves a request. That's it really. The whole original Struts framework was a single servlet.
I would add Tomcat or Jetty to your list of technologies to learn. Tomcat is the original Java Servlet Container implementation and happens to also be a fully featured and rather popular web server. GlassFish is built on top of it. I've been using Jetty instead of Tomcat in my newer projects because it's simpler, more flexible, and faster. Jetty was designed to make web services as opposed to web apps. But a web app is just a web service that serves HTML in response to raw HTTP requests, so if you understand HTTP (which you can learn the important parts of in a few hours to a day), it's very easy to work with.
You can make a little web site with Tomcat and JSP (tutorial here or JSF) knowing just what you know and spending a few hours going through tutorials. That way you can start where you are comfortable before stretching out. Then make a javax.servlet.http.HttpServlet that writes "<html><head><title>Hi</title></head><body><h1>Hello World</h1></body></html>" to the response object, list it in your Tomcat web.xml and send an HTTP request it from a web browser. It's not rocket science. All Java web frameworks are variations on those two basic activities.
If you go the Jetty route, it's even less structured. Check out this Hello Jetty example.
If you're just going to make a blog or standard ecommerce site, I'd start with SquareSpace or Wordpress or something. You get so much off the shelf, there's no way to justify custom coding any of that anymore.
The strength of Java for web applications is its reliability, maintainability, and performance. PHP or Ruby/Rails is simpler, but Java will scale as much as you want to go. I am not bowled over by any of the Java web frameworks. When you have a team of people working on a large web application, or you need to use Hibernate, then a framework like Spring really shines. Spring is the most popular. When you have some familiarity with servlets and JSP/JSF, then learn how Spring ties those together with a data model.
If you are making a blog or a content management system, maybe you can get away with a NoSQL database. But I would argue that NoSQL databases are basically just a caching layer on a file system, rather than replacing relational databases. I think it's rare that a project that's a good fit for a NoSQL database is going to be appropriate to develop in Java.
Things that still require custom, high-performance code (in Java, PHP, whatever) are probably going to have a relational/SQL database powering them. I would recommend you get a basic familiarity with SQL and JDBC (Java Database Connectivity) first. After you are comfortable with the world of Java objects, and the world of relational databases and SQL, then you can learn Ebean/JPA (Java Persistence API)/ORM (Object to Relational Mapping) which connects the object world to the relational world.
ORM's are tricky and weird. Most are eventually worth the struggle. Ebean is the simplest one I know. I'm more comfortable with it after 8 months than I am with Hibernate after 12 years. I know a lot of people who use Spring with Hibernate and they don't seem to have any trouble, or even be particularly aware of what Hibernate is or does, so I'd say if you're going to use Hibernate, do it through Spring. Maybe just because I've worked with it longer, I've managed to completely stub-out Hibernate with a couple of hash maps for testing, which is awesome (overview available on request).
You have some of the most important skills already. Take the others one at a time and try not to get overwhelmed.