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 (String
s, 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. ...
Get Java Performance Tuning, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.