你的J2EE應用是不是啟動並執行很慢?它們能不能承受住不斷上升的訪問量?本文講述了開發高效能、高彈性的JSP頁面和Servlet的效能最佳化技術。其意思是建立儘可能快的並能適應數量增長的使用者及其請求。在本文中,我將帶領你學習已經實踐和得到證實的效能調整技術,它將大大地提高你的servlet和jsp頁面的效能,進而提升J2EE的效能。這些技術的部分用於開發階段,例如,設計和編碼階段。另一部分技術則與配置相關。
技術1:在HttpServlet init()方法中快取資料
伺服器會在建立servlet執行個體之後和servlet處理任何請求之前調用servlet的init()方法。該方法在servlet的生命週期中僅調用一次。為了提高效能,在init()中緩衝待用資料或完成要在初始化期間完成的代價昂貴的操作。例如,一個最佳實務是使用實現了javax.sql.DataSource介面的JDBC串連池。DataSource從JNDI樹中獲得。每調用一次SQL就要使用JNDI尋找DataSource是非常昂貴的工作,而且嚴重影響了應用的效能。Servlet的init()方法可以用於擷取DataSource並緩衝它以便之後的重用:
public class ControllerServlet extends HttpServlet
{
private javax.sql.DataSource testDS = null;
public void init(ServletConfig config) throws ServletException
{
super.init(config);
Context ctx = null;
try
{
ctx = new InitialContext();
testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS");
}
catch(NamingException ne)
{
ne.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public javax.sql.DataSource getTestDS()
{
return testDS;
}
...
...
}