转载

JSP的Init和Destory函数提高工作效率

用Jdbc-odbc桥来连接,不过这可是牺牲了速度来的。用Jdbc-odbc桥的话,和连接access是一样的,先要设置一个数据源DNS,然后就用:
Class.forName("sun.Jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("Jdbc:odbc:strurl",”
username”,”password”);

进行数据库的链接是比较耗时的,如果频繁刷新页面,那就会不停的访问数据库,大大耗去了数据库的资源。JSP提供了这样一对函数,JSPInit(),JSPDestory();如果要在JSP网页开始执行时,进行某些数据的初始化,则可以利用JSPInit函数来完成。此函数将在JSP网页被执行时调用,且当JSP网页重新整理时,并不会被再度执行。当关闭服务器时,JSPDestory函数将被调用,可利用该函数来完成数据的善后处理。

可以利用JSPInit和JSPDestory函数来完成数据库的链接和关闭。在JSPInit中进行数据库的链接,可以避免每次刷新页面时都要链接数据库,提高了工作效率。

以下是代码实例:

  1. <%!  
  2. Connection conn=null;  
  3. Statement st=null;  
  4. ResultSet rs=null;  
  5. Public void jspInit()  
  6. {  
  7.  Try  
  8.  {  
  9. //加载驱动程序类  
  10.  
  11.   Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);  
  12.   //连接数据库       
  13.  
  14. Connection conn=DriverManager.getConnection("jdbc:odbc:strurl",”  
  15. username”,”password”);  
  16. //建立Statement对象  
  17.  
  18. St=conn.CreateStatement();  
  19. }  
  20. Catch(Exception ex)  
  21. {  
  22. System.out.println(ex.toString());  
  23. }  
  24. }  
  25. Public void jspDestroy()  
  26. {  
  27. try  
  28. {  
  29.  rs.close();  
  30. st.,close();  
  31.    conn.close();  
  32.  }  
  33.  catch(Exception ex)  
  34.    {  
  35.    System.out.println(ex.toString());  
  36.  }  
  37. }  
  38. %> 

当JSP网页从数据库中取得数据时,最耗费服务器时间的是建立数据库链接。用JSPInit
和JSPDestory函数并不是非常好的办法,毕竟每浏览一次新网页,就要建立数据库链
接。这个时候可以为一个联机者建立一个数据库链接。这里我们利用Bean对象来建立数
据库链接。

以下是代码实例:

  1. //定义bean所属的套件  
  2.  
  3. package com.test;  
  4. import java.io.*;  
  5. import java.sql.*;  
  6. import javax.servlet.http.*;  
  7. public class conn implements HttpSessionBindingListener  
  8. {  
  9. private Connection con=null;  
  10. public conn() //在构造函数中完成数据库链接  
  11.  
  12. {  
  13. BulidConnection();  
  14. }  
  15. private void BulidConnection()  
  16. {  
  17. try  
  18. {  
  19. //载入驱动程序  
  20.  
  21. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
  22. }  
  23. catch(java.lang.ClassNotFoundException e1)  
  24. {  
  25. System.out.println("数据库驱动加载失败<br>");  
  26. }  
  27. try  
  28. {  
  29. //建立数据库链接  
  30.  
  31. con=DriverManager.getConnection("jdbc:odbc:test","test","test");  
  32. }  
  33. catch(SQLException e2)  
  34. {  
  35. System.out.println("数据库连接失败");  
  36. }  
  37. }  
  38. //取得Connection对象  
  39.  
  40. public Connection getConnection()  
  41. {  
  42. if(con==null)  
  43. BulidConnection();  
  44. return this.con;  
  45. }  
  46. public void close()  
  47. {  
  48. try  
  49. {  
  50. con.close();  
  51. con=null;  
  52. }  
  53. catch(SQLException sex)  
  54. {  
  55. System.out.println(sex.toString());  
  56. }  
  57. }  
  58. //当物体加入session时,将自动执行此函数  
  59.  
  60. public void valueBound(HttpSessionBindingEvent event){}  
  61. //当session对象删除时,将自动执行此函数  
  62.  
  63. public void valueUnbound(HttpSessionBindingEvent event)  
  64. {  
  65. if(con!=null)  
  66. close();//调用close方法  
  67.  
  68. }  

正文到此结束
Loading...