Friday, 22 April 2016

How can I implement a thread-safe JSP page? What are the advantages and Disadvantages of using it ?


You can make your JSPs thread-safe by having them implement the
SingleThreadModel interface.

This is done by adding the directive <%@ page isThreadSafe="false" %> within your JSP page.

With this, instead of a single instance of the servlet generated for your JSP page loaded in memory, you will have N instances of the servlet loaded and initialized, with the service method of each instance effectively synchronized.

You can typically control the number of instances (N) that are instantiated for all servlets implementing SingleThreadModel through the admin screen for your JSP engine.

More importantly, avoid using the tag for variables. If you do use this tag, then you should set is ThreadSafe to true, as mentioned above. Otherwise, all requests to that page will access those variables, causing a nasty race condition.

SingleThreadModel is not recommended for normal use.
There are many pitfalls, including the example above of not being able to use <%! %>

You should try really hard to make them thread-safe the old fashioned way: by making them thread-safe.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.