jsp的高手进来帮帮小弟啊

geqian1990 2011-08-27 12:38:52
我用jsp写的一个网站,只要里面的内容涉及到连接数据库的话就打不开,我检查了下,发现进入了数据库就出不来了,而且把网页关了之后还占着cpu,只有关了tomcat才能释放,所以多点击几下就死机了。。不知道各位高手有没有遇到类似的情况,是不是数据库的问题。。而且很诡异,偶尔会进去。。求解求解。。谢谢啦????
...全文
166 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
geqian1990 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 liyangyun1986 的回复:]
this.close()这个方法你是不是写在了父类里面了?
[/Quote]
恩。。同一个类,写成了close函数
hnxxhc 2011-08-30
  • 打赏
  • 举报
回复
相信你能找到答案的!
子非 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 dachuandavid 的回复:]

我遇到过类似的问题,数据库事务如果没有提交的话就会出现类似死机的情况,注意事务一定要把transaction给commit()了才能解决
[/Quote]
也遇到过这样的问题……
rs、ps、ct的关闭顺序也注意一下吧……
断点,一行一行找一下
bin_lovejava 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 dachuandavid 的回复:]
我遇到过类似的问题,数据库事务如果没有提交的话就会出现类似死机的情况,注意事务一定要把transaction给commit()了才能解决
[/Quote]
z
小小木木 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 geqian1990 的回复:]
引用 15 楼 wxxy20071547 的回复:
数据库用完 要close()吧

我close啦。。只是把close写成一个close函数啦,在finally里(this。close())
[/Quote]


数据库,rs,pstm,connection用完了都要关的
liyangyun1986 2011-08-29
  • 打赏
  • 举报
回复
this.close()这个方法你是不是写在了父类里面了?
geqian1990 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 jeremy89757 的回复:]
引用 13 楼 bill0605030109 的回复:
rs要close()
建议把部分代码屏蔽掉,然后一点一点的排除,会找出死循环的地方的。。

这是好方法、、、、
[/Quote]
我用了,把链接了数据库的那个板块排掉就正常,那板块一上去就没用。。不知道怎么回事,那些链接我都关闭啦。。
geqian1990 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 dachuandavid 的回复:]
我遇到过类似的问题,数据库事务如果没有提交的话就会出现类似死机的情况,注意事务一定要把transaction给commit()了才能解决
[/Quote]
不是很懂。。我是新手,都是自己一个人在看视频,刚开始还好,现在感觉没个师傅教的话好难
geqian1990 2011-08-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wxxy20071547 的回复:]
数据库用完 要close()吧
[/Quote]
我close啦。。只是把close写成一个close函数啦,在finally里(this。close())
风影simple 2011-08-28
  • 打赏
  • 举报
回复
数据库用完 要close()吧
liyang1271989 2011-08-28
  • 打赏
  • 举报
回复
你断点下 你sql执行后 得到的数据!!
  • 打赏
  • 举报
回复
rs要close()
建议把部分代码屏蔽掉,然后一点一点的排除,会找出死循环的地方的。。
小恩yoo 2011-08-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 bill0605030109 的回复:]
rs要close()
建议把部分代码屏蔽掉,然后一点一点的排除,会找出死循环的地方的。。
[/Quote]
这是好方法、、、、
dachuandavid 2011-08-28
  • 打赏
  • 举报
回复
我遇到过类似的问题,数据库事务如果没有提交的话就会出现类似死机的情况,注意事务一定要把transaction给commit()了才能解决
nirvana_dds 2011-08-28
  • 打赏
  • 举报
回复
把控制台日志发出来看看
Jake 2011-08-28
  • 打赏
  • 举报
回复
你用的会话是 session 或者 用的是 Application 吧 ! 用完后也要释放的,不然在你的tomcat服务器中会站内存的!这样的话你的服务器的压力就会越来越大的!
还用一种可能就是你在DAO中写的获取数据的方法没有对CONNECTION , STATEMENT , RESULTSET 等对象没有关闭!
geqian1990 2011-08-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ls1firesoar 的回复:]
无码五真相,贴代码
[/Quote]

<%@ page language="java" import="java.util.*,com.mogu.model.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
//取出数据
GoodsBeanBo gbb=new GoodsBeanBo();
ArrayList al=gbb.getgoodspage(6,1);
%>
<table width="100%" border="0" class="abc">
<%
int times=0;
for(int i=0;i<2;i++)
{
//打印两大行,每行三个
%>
<tr>
<%

for(int j=0;j<3;j++)
{
GoodsBean gb=(GoodsBean)al.get(times);
times++;
%>
<td width="33%" height="507"><table width="100%" border="0">
<tr>
<td width="44%" rowspan="3"><img src="images/<%=gb.getPhoto() %>" width="250" height="350" /></td>
<td width="56%" height="119"> </td>
</tr>
<tr>
<td height="116" valign="top"><a href="showdetailClServlet?id=<%=gb.getGoodsId() %>"><%=gb.getGoodsName() %></a></td>
</tr>
<tr>
<td height="82" valign="top">价格:<%=gb.getGoodsprice() %></td>
</tr>
<tr>
<td height="142" colspan="2" valign="top">影片介绍:<%=gb.getGoodsIntro() %></td>
</tr>
</table></td>
<%
}
%>
</tr>

<%
//判断第一大行是否结束
if(i==0){
%>
<tr>
<td colspan="3" bgcolor="#FF9999"> </td>
</tr>
<%
}
}

%>


<tr>
<td colspan="3" align="center">【1】【2】</td>
</tr>
</table>

这是页面显示中涉及到数据库的地方,把这部分剪除就可以进入页面。。这部分代码有错吗??

(下面这个是goodsBeanBo函数finally里的close是写的关闭连接的函数。。这里没贴出来)
private ResultSet rs=null;

private PreparedStatement ps=null;

private Connection ct=null;

//分页显示货品信息
public ArrayList getgoodspage(int pageSize,int pageNow){
ArrayList al=new ArrayList();
try {
ct=new ConnDB().getConn();
ps=ct.prepareStatement("select top "+pageSize+" * from goods where goodsId not in(select top "+(pageNow-1)*pageSize+" goodsId from goods)");
rs=ps.executeQuery();
while(rs.next())
{
GoodsBean gb=new GoodsBean();
gb.setGoodsId(rs.getInt(1));
gb.setGoodsName(rs.getString(2));
gb.setGoodsIntro(rs.getString(3));
gb.setGoodsprice(rs.getFloat(4));
gb.setGoodsNum(rs.getInt(5));
gb.setPublisher(rs.getString(6));
gb.setPhoto(rs.getString(7));
gb.setType(rs.getString(8));

al.add(gb);
}

} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
this.close();
}
return al;
}
geqian1990 2011-08-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 super_href 的回复:]
看看你控制台报什么错啊!!!这个很重要!!!
[/Quote]
就是因为控制台没错误才搞的我莫名奇妙啊
LS1firesoar 2011-08-27
  • 打赏
  • 举报
回复
无码五真相,贴代码
super_href 2011-08-27
  • 打赏
  • 举报
回复
看看你控制台报什么错啊!!!这个很重要!!!
加载更多回复(8)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧