See if this makes sense... I got this extract from a .pdf file I have, I can only find this line the nearest to answer your quesion.
The isThreadSafe attribute controls whether or not the servlet that results from the JSP page will implement the SingleThreadModel interface. Use of the isThreadSafe attribute takes one of the following two forms:
"It is a common mistake to think that implementing SingleThreadModel makes JSP thread safe. This is simply not true. A web container is free to start more than 1 instance of your JSP page. If this happens the ThreadSafeModel fails. With JSP there is no substitute for knowing how to implement a thread safe web application. "
Well, implementing SingleThreadModel for servlet does make it thread safe as well. so, it's the same as with JSP.
The DEVELOPER is responsible to make servlet or JSP thread safe.
Also, note that starting from 2.4 Servlet API the SingleThreadModel interface is *depricated* and should be avoided (not much use, but posible big problems with performance). This means that DEVELOPER should care of properly threading.
Java Platform, Enterprise Edition 6 Web Services Developer Certified Expert Exam Study Guide and Quiz Exam 1Z0-810: Upgrade to Java SE 8 Programmer Study Guide and Quiz
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com