提升JSP頁面響應速度的七大技巧
方法一:在servlet的init()方法中緩存數據
當應用服務器初始化servlet實例之後,为客戶端請求提供服務之前,他會調用這個servlet的init()方法。在一個servlet的生命周期中,init()方法只會被調用一次。通過在init()方法中緩存一些靜態的數據或完成一些只需要執行一次的、耗時的操作,就可大大地提高系統性能。
例如,通過在init()方法中建立一個JDBC連接池是個最好例子,假設我們是用jdbc2.0的DataSource接口來取得數據庫連接,在通常的情況下,我們需要通過JNDI來取得具體的數據源。我們能夠想象在一個具體的應用中,假如每次SQL請求都要執行一次JNDI查詢的話,那系統性能將會急剧下降。解决方法是如下代碼,他通過緩存DataSource,使得下一次SQL調用時仍然能夠繼續利用他:
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...