性能提升---在servlet的init()方法中缓存数据

在servlet的init()方法中缓存数据  当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,它会调用这个servlet的init()方法。在一个servlet的生命周期中,init()方法只会被调用一次。通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系统性能。  例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来取得数据库连接,在通常的情况下,我们需要通过JNDI来取得具体的数据源。我们可以想象在一个具体的应用中,如果每次SQL请求都要执行一次JNDI查询的话,那系统性能将会急剧下降。解决方法是如下代码:

import javax.sql.*;public class ControllerServlet extends HttpServlet{

 DataSource testDS = null;

 public void init(ServletConfig config) throws ServletException { 

 super.init(config);  

Context ctx = null;  

try  { 

  ctx = new InitialContext(); 

  testDS = (DataSource)ctx.lookup("jdbc/testDS"); 

 }  catch(NamingException ne)  {

   ne.printStackTrace();  }  catch(Exception e)  {

   e.printStackTrace();  } 

}  public DataSource getTestDS() {

  return testDS; } 

 ...... .....

.}


你可能感兴趣的:(java,web性能提升)