设为首页 收藏本站
查看: 789|回复: 0

[经验分享] Weblogic的JSP问题解决方法

[复制链接]

尚未签到

发表于 2017-2-16 09:50:45 | 显示全部楼层 |阅读模式
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
  在做项目的时候,JSP在运行的时候出现了一些问题,现将我的问题解决方法做一个小结,供以后作项目的参考。
  问题1:
  weblogic 的数据库连接数目在程序运行中不断增长,最后连接数目超过最大数,导致weblogic服务关闭。
  原因:
  在操作完数据库后,没有关闭数据库连接;或者是返回结果集(Resultset),而无法在JSP中关闭数据库连接。
  解决方法:
  1.在操作完数据库要关闭数据库连接。
  2.尽量不要返回结果集Resultset, 可以返回Vector(一个字段)、Hashtable(多个字段),这样可以在javabean中关闭数据库。
  3.如果javabean中返回的是结果集(Resultset),也可以在javaBean中写一个connectDB(连接数据库)、closeDB(关闭数据库)的方法,然后jsp里面调用connectDB(),建立数据库连接,同时就可以对数据库进行操作了,操作数据库完毕,可以通过closeDB() 来关闭数据库。
  问题2:
  在运行某一个JSP程序的时候,weblogic 的内存陡然增长,而且居高不下。最终导致weblogic 内存不足,甚至宕机。
  原因:
  过度使用内存。
  解决方法:
  1.由于数据量比较大,在对字符串进行操作的时候,使用 + 进行字符串连接,而相信大家对String都非常熟悉,我们也经常要用它来做字符串的连接什么的,例如:
  String a =b+c file://b,c 都是String
  但是在实际的编译中却是这样:

String a=new StringBuffer().append(b).append(c).toString()
  显然,在一个简单的语句中却意外的多生成了2个对象:
  .StringBuffer()
  .toString返回的一个String
  我们比较一下这两段程序的性能:
  程序片断一:

StringBuffer s=new StringBuffer();
long start = System.currentTimeMillis();
for (int i=0;i<10000;i++){
s1+="a";
}
long stop = System.currentTimeMillis();
System.out.println(stop-start);
  程序片断二:

StringBuffer s=new StringBuffer(10000);//
long start=System.currentTimeMillis();
for (int i=0;i<10000;i++){
s.append("a");
}
long stop=System.currentTimeMillis();
System.out.println(stop-start);
  比较一下结果,差距很明显。
  至于为什么String的连接这么做,因为String无法直接改变其长度,而必须采用StringBuffer的用法。
  因此建议使用StringBuffer 的append 方法来进行字符串相连。
  2.在解决这个问题的时候,我也尝试使用上面的方法,效果并不是很明显(消耗内存上)。后来在显示大量数据的时候,避免字符串相连的步骤,而直接使用out.println(),直接输出。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-342837-1-1.html 上篇帖子: weblogic/jboss使用ejb3.0远程调用 下篇帖子: 数据源配置文件_weblogic_jboss
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表