Question 1: I did servlets/JSP programming back in the day (2001-2003). Since then there have been libraries like GWT, YUI, etc. Is JSP still the preferred way of building web apps using Java?
You need to realize that any framework/library which was released around and after that time are almost all built on top of JSP/Servlet. Basic knowledge and understanding of JSP/Servlet is still mandatory to understand what the framework/library does "under the hoods". Those frameworks usually takes the work from your hands with gathering, converting and/or validating of the request parameters and updating the model values with them and associating the view with the model so that you basically end up with a view (JSP page) and a model/domain object (javabean).
JSP/Servlet is still suitable when there's means of a small/lightweight application with one or two forms. But if it gets larger or you'd like to add models/views on demand without any need to (re)write the (specific) controllers, then a MVC framework is the way to go.
YUI is by the way more client side oriented. Next to GWT you have also choice of Apache Struts2, Spring MVC and Sun JSF. You'll also notice that JSF2 has pushed Facelets forward as the new view technology to replace the good old JSP. I would say JavaEE6/JSF2/Facelets is nowadays the way to go if you want to dive in MVC.
Question 2: Because I enjoyed what I was doing and needed to pay the bills, I didn't realize that the ground below me has shifted. How do avoid this in the future? My years of C system programming doesn't seem to matter a lot now to the young guys who talk about design patterns.
I understand what you're talking about, I realized that after years of doing almost the same thing at IBM day in and out. In my case the key to success was to put some (free) time in reading and learning about and playing with the new stuff, mainly with information gathered by participating at programming forums like forums.sun.com and (since recently) stackoverflow. Also jobhopping did help a lot in gathering new experiences and knowledge. I after the boring job at a big company dived into JSF and jobhopped to a smaller company in this direction. I would say, put some time to hobby/play with the new API's and frameworks, starting with exploring what the fresh new Java EE 6 has to provide. Try to poke around for another jobs which involves the new technologies, do some interviews, show that you're eager to learn them. Or talk with your boss/manager about the new technologies.