For JSP, I would recommend either
Head First Servlets & JSP or
Core Servlets and JavaServer Pages: Volume 1: Core Technologies. (While Core Servlets is in its second edition, the first edition is available as a free PDF download.) I also like the O'Reilly book
JavaServer Pages, but think it can be a bit dense and too fast paced for a beginner. It does make a great second book.
I agree with Bear that you need to have a good understanding of JSP & Serlvets before attempting to tackle Struts. Once you are ready, here are some thoughts...
I have read a couple Struts books, but have yet to find one that I can recommend highly above all others. I find each has some strengths, but also some weaknesses. Again, the O'Reilly book,
Programming Jakarta Struts is a great book, but when I read it, it was my first exposure to Struts and I found it daunting. After having a better foundation, I reread it and found it very informative. (Note I read the 1st Edition, but the 2nd is now out.) I think the "problem" with writing a Struts book is that Struts is a complex and large framework, and it can be hard to organize the presentation of the material in a easy flowing manner. In the end, I read about 4 books on Struts, picking up different things from different books and via repetition. But in the end, I learned Struts by developing a mid-sized Struts application. O'Reilly did recently publish the Jakarta Struts Cookbook, and it looks like it may make a good reference book, but I have not had a chance to read any of it,
While Amazon and its reviews are great, in the end I often find the best way to pick a book is to spend a Saturday in a good brick & mortar bookstore and read a chapter or two from each book. Other people's recommendations and reviews are going to be based on their learning style, the type of organization they like in a book, and their level of knowledge that they already have.
I hope that helps...