
Focuses on the little-touched but critical parts of the Java programming language that the expert programmers use. Learn about extremely powerful and useful programming techniques such as reflection, advanced data modeling, advanced GUI design, and advanced aspects of JDO, EJB, and XML-based web clients. This unique book reveals the true wizardry behind the complex and often mysterious Java environment--O'Reilly web site.
Anyway, back on topic... If you must go the Struts route do yourself a favor and use Struts 2. It's been a little while since I've been in the Java web development world, but when I was keeping up with it a lot of developers still hadn't moved on yet. It's light years ahead of Struts 1 and really not so bad to work with as far as Java web development is concerned.
Some others have mentioned 'Thinking in Java'. It's a great book for those new to Java and especially object oriented programming. A seasoned programmer may find it a little verbose. Either way it's free to read online so it's probably worth checking out. If you're looking for something a little smaller to digest you might want to check out Sun's tutorials, and the Java API docs are invaluable. The language itself is simple; it's knowledge of the standard libraries that separates a good Java developer from a mediocre one.
'Effective Java' and 'Hardcore Java' (specifically the chapter on the Collections API) should be mandatory reading for Java developers as well so you may want to check those out once you get up to speed with the language.
For learning Struts, I'd check out the online docs first. Last time I checked they were pretty good. If you still want a book, I've found the 'In Action' series from Manning Press to be good.
Even technical books like Hardcore Java: https://www.oreilly.com/library/view/hardcore-java/059600568... are god-awful, and even further away from the seminal texts on computer science that came before.
It does feel like authorship was once heralded in higher esteem than it deserves today.
Seems like people agree: https://www.reddit.com/r/books/comments/18cvy9e/rant_bestsel...
The author of the book had just recently made the progression to what they considered advanced, so the book was chock full of beginner-cum-expert advice like this article.
And it was all wrong. The errata for the book is more pages than the book itself. It had the basics of java incredibly wrong, most of the code samples in the book were not compilable, it was a mess.
This article strikes me the same way. Someone who has a little more knowledge than a beginner, but hasn't yet learned how little they know. So they want to show off their new knowledge with gatekeeping "lessons"
The difference between junior and senior isn't just about going from "easy way" -> "best way" It's about understanding when you can get away with the easy way, when the best way is too hard for a situation, or the situation isn't called for. It doesn't fit nicely into X does Y and A does B. Design/Engineering isn't black and white.