Six Steps to Faster J2EE Apps: Performance Tuning with JSP and Servlets
by Sridhar M S
Can your J2EE application sustain a large number of client requests simultaneously? Or does it become sluggish, with painfully slow response times? There are many reasons for such performance bottlenecks and many ways to prevent them. However, sometimes it's just a matter of following some simple best practices that can make all the difference. The following are six simple changes you can make, some in the design and some in the coding phases, that can help you build faster, more robust applications.
Step 1: Adopt the Correct Include Mechanism
There may be cases where you have a choice between including either a dynamic page (JSP) or a static page (HTML). Making the wrong choice can affect performance.
There are two ways you can include files in a JSP page:
- Include directive (<%@ include file="test.jsp" %>): This includes the contents of the file during the compilation phasei.e., when the page is converted to a servlet.
- Include action (<jsp:include page="test.jsp" flush="true" />): This includes the contents of the file in the run-timei.e., when a request is made for the page by the user.
The include directive is better and faster than the include action, because the page does not get compiled during run-time and hence does not require any server side processingexcept the delivery of the page to the client. If your file does not change often, or if it is not a dynamic page, use include directive to improve performance.
Step 2: Use the Correct Scope in the useBean Action
JSP pages allow you to reuse existing code in the form of JavaBeans. You can embed that JavaBeans code in a page and access it using the <jsp:useBean> action tag.
Below is the syntax:
<jsp:useBean id="name" scope="request|page|session|application"
class="package.className" type="typeName">
</jsp:useBean>
The scope attribute is an important one. It specifies the scope of the bean which is being is used. If the scope goes unspecified, the default value for the scope attribute is page. Selecting the correct scope can fetch you better performance.
For example, if the bean that you are using is required only for a particular request, but scope is set to session, that object will remain in the memory even after your request is complete. The object will exist in the memory until you explicitly remove it invalidate the session, or, in the case of time-outs, the session.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.