Longer version:
For the last two years I've worked for a major university - one of the top fifty. Prior to working for the university, I spent thirty years in industry. During my time in the commercial market, I thought of universities as ivory towers were everything is the latest and greatest ... because reading research papers only shows you the latest and greatest.
When I got here, I was shocked to find that many of our systems were 15, 20 or even 25 years behind those we were using in industry. Not that they weren't stable, but since our primary job is to "educate the youngin's", working systems were valued but there is no competitive advantage to replacing them.
My son is a super-senior in college, and I've noticed that the information he's learning is (on average) five to ten years old. And this actually makes sense. Research is bleeding edge, but much of it isn't commercially valuable. Since undergrad degrees are supposed to produce graduates who can obtain jobs in industry, industry generally has to adopt a technology before it's likely to be used in education.
Once industry adopts a technology, a professor (or department) has to recognize that adoption, make sure it's not simply a technology fad, verify that it aligns with the theoretical approaches that are valid and develop a curriculum.
Your university is actually providing you a valuable education by focusing on the technologies that are valued in industry, albeit a little behind the curve. Why? Because JSP is still used by a huge number of corporations and as a mark-up representation it's a pretty good example of many comparable technologies. Furthermore, JSF has been strengthened in the latest JavaEE releases and many large corporations have adopted these changes.
What if you don't want to work for a big stodgy corporation? You probably didn't need to go to a big stodgy corporation, but I question whether you're really following the technology trends very well. "PHP instead of XML+XSLT" sounds like a horrible way to do ETL, even for a start-up. Why wouldn't you pick NodeJS in that instance?
There are thousands of technology stacks and it's not practical for your university to teach all of them to you. how invested are you in learning the ones you're curious about outside of your classwork? You do realize you're responsible for your education and career right? If you don't learn new technologies on your own in the corporate world, you'll be quickly outdated.
So finally, my suggestion: Learn one of the technologies you're interested in, then go have a discussion with the professor about how that technology compares with what he's teaching you. I'm hoping he'll be intellectually curious and engage deeply in a conversation like this - recognizing that he can also learn something in the process. If not, your professor has indeed failed.