分享

技术1:在HttpServlet init()方法中缓存数据

 小陈 2007-05-15
在HttpServlet init()方法中缓存数据     -|D.T.S_Cloud 发表于 2005-6-27 15:34:00
服务器会在创建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;
      }
   ...
   ...
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多