You already realize that the choice of frameworks and technologies is normally based on lots of factors, and that there is no "best" approach - that's good! I think wanting to sidestep that process is reasonable for a student project, so I'll make some recommendation that IMO you can't go wrong with, and comment with respect to later applicability.
For the web app, servlets and
JSP are a good way to start. Other template engines (FreeMarker, Velocity) and other frameworks (GWT,
JSF) are not used widely enough that you'll necessarily ever come in touch with them later- It's good to know different approaches, though, so if you have spare time learning a very different framework (GWT, Play, Wicket) would be a good educational experience. If you want to use a bit more than "naked" servlets and JSP, check out the
FrontMan framework that implements MVC; it has the advantage of not doing a whole lot as far as web frameworks go, which means there isn't that much too learn (and it sounds like you have much to learn anyway). For learning servlets and JSP I recommend to get a book to more it a structured learning experience, maybe something like
Head First Servlets and JSP.
For using Google Maps you need more JavaScript knowledge than Java knowledge, and it has no connection to, or dependency on, GWT.
For the API, read up on RESTful web services (
https://coderanch.com/how-to/java/WebServicesFaq). The standard Java API for that is called JAX-RS, and the standard implementation library is
Jersey.
If there's DB connectivity, you'll want to learn
JDBC, the standard Java API for accessing DBs. It's very common to use an ORM API on top of that (maybe JPA or Hibernate). If you have mastered JDBC and have time for more, I'd probably go for JPA (the standard Java ORM API), but the Hibernate API is conceptually similar, so if you know one you should have few problems picking up the other.