Today, I am glad that I can pass the exam and I would like to share my experience for preparing the exam.
I spent around 2 months for the exam. Before preparing the exam, i' ve had one year working experience for java web software development . I suggest you are better to have a basic foundation of Servlet and JSP first before considering to prepare the exam.
My study materials:
a. Head First Servlet & JSP
This book is very easy to understand and I appreciate that this book has some tricky questions for you to think what you have learnt in a different way once finishing a new section. Also, this book has enough sample code for you to understand.
b. OCEJWCD Study Companion, Charles Lyon
This is also a great book but NOT an elementary book for novice. Although there is not much code in this book, the explanation is quite clear and can let you think from different perspectives.
c. Enthuware mock exam
It is a MUST to take this mock exam before taking the real exam. The mock exam has around 10 tests over 1000 questions for your practices. ( i only did 8 tests) Also, the explanation for questions is very detailed and most of the time the information in the spec is cited for explanation and this let you save your time to go through the spec. I like it. By the way, this mock exam is not expensive.
if you have enough time, you should go through spec of Servlet, Jsp, Jstl ..... However, I don't have enough time and I only read the servlet part, around 200 pages.
This exam is hard and you need to memorize too many things. For example, the configuration of DD, tld, annotations, how to create a simple tag or classic tag....
Also, you need to do a little bit study on http methods in addition to Java as I have faced around 5 questions on http methods completely not related to servlet or jsp.
However, in my opinion, OCPJP7 is a little bit harder than this.
for HttpServletResponse.setMaxActiveInterval(), Java EE 5 and 6 are different.
In Java EE 5, if the arg is 0, the session will be ended immediately. However, in Java EE 6, the session will never be expired.