您现在的位置是:首页 >

500错误原因解决方法 Weblogic的JSP问题解决方法

火烧 2021-08-09 11:33:07 1042
We logic的JSP问题解决方法     在做项目的时候 JSP在运行的时候出现了一些问题 现将我的问题解决方法做一个小结 供以后作项目的参考   问题  we logic 的数据库连接数目在程序

Weblogic的JSP问题解决方法  

  

  在做项目的时候 JSP在运行的时候出现了一些问题 现将我的问题解决方法做一个小结 供以后作项目的参考

  问题

  weblogic 的数据库连接数目在程序运行中不断增长 最后连接数目超过最大数 导致weblogic服务关闭

  原因

  在操作完数据库后 没有关闭数据库连接 或者是返回结果集(Resultset) 而无法在JSP中关闭数据库连接

  解决方法

   .在操作完数据库要关闭数据库连接

   .尽量不要返回结果集Resultset 可以返回Vector(一个字段) Hashtable(多个字段) 这样可以在javabean中关闭数据库

   .如果javabean中返回的是结果集(Resultset) 也可以在javaBean中写一个connectDB(连接数据库) closeDB(关闭数据库)的方法 然后jsp里面调用connectDB() 建立数据库连接 同时就可以对数据库进行操作了 操作数据库完毕 可以通过closeDB() 来关闭数据库

  问题

  在运行某一个JSP程序的时候 weblogic 的内存陡然增长 而且居高不下 最终导致weblogic 内存不足 甚至宕机

  原因

  过度使用内存

  解决方法

   .由于数据量比较大 在对字符串进行操作的时候 使用 + 进行字符串连接 而相信大家对String都非常熟悉 我们也经常要用它来做字符串的连接什么的 例如

  String a =b+c file://b c 都是String

  但是在实际的编译中却是这样

  

  String a=new StringBuffer() append(b) append(c) toString()

  显然 在一个简单的语句中却意外的多生成了 个对象

   StringBuffer()

   toString返回的一个String

  我们比较一下这两段程序的性能

  程序片断一

  

  StringBuffer s=new StringBuffer();long start = System currentTimeMillis();for (int i= ;i< ;i++){s += a ;}long stop = System currentTimeMillis();System out println(stop start);

  程序片断二

  

  StringBuffer s=new StringBuffer( );//long start=System currentTimeMillis(); for (int i= ;i< ;i++){s append( a ); }long stop=System currentTimeMillis();System out println(stop start);

500错误原因解决方法 Weblogic的JSP问题解决方法

  比较一下结果 差距很明显

  至于为什么String的连接这么做 因为String无法直接改变其长度 而必须采用StringBuffer的用法

  因此建议使用StringBuffer 的append 方法来进行字符串相连

lishixinzhi/Article/program/Java/hx/201311/26440  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码