Chapter 17. Tuning Servlets and JSPs
Most J2EE
applications are built around servlets and JSPs. The two types of
performance considerations for servlets and JSPs are efficient use of
J2SE code (Strings, I/O, etc.) and optimizing
servlet container-related resources, including the resources provided
as part of the Servlet API.
Since JSPs are compiled into servlets, there is usually little difference in performance between them. However, explicitly coding servlets can result in faster applications than JSPs because you have much more control over the fine details of the servlet. This is one of the standard performance tradeoffs: using JSPs results in a better design (separating presentation and logic), but servlets can be tweaked to go faster.
Don’t Use SingleThreadModel
javax.servlet.SingleThreadModel
is a marker interface
available to servlet developers that pushes responsibility for thread
safety onto the servlet engine. Essentially, if your servlet
implements
SingleThreadModel
, the servlet engine creates
a separate servlet instance for each concurrent request using the
servlet. SingleThreadModel does not even guarantee
thread safety, since the resulting servlet instances can still access
classes and data at the same time. However,
SingleThreadModel does guarantee that more
resources will be used than are needed, as maintaining the multiple
instances has some cost to the servlet engine.
Instead of using SingleThreadModel, concentrate on writing a thread-safe multi-threaded servlet. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access