TOMCAT 出错,又来麻烦大家了.......

kissseething 2007-08-14 06:13:04
2007-8-14 18:03:23 org.apache.jasper.runtime.PageContextImpl release
警告: Internal error flushing the buffer in release()

参照别人的代码拼凑的个JSP网页,控制台出现上述错误。
代码如下:麻烦大家帮找找问题,顺便看下有哪些不合理的地方?鞠躬谢谢~
----------------------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.text.*"%>
<%@ include file="inc/conn.jsp"%>
<%
//request.setCharacterEncoding("GB2312") ;
%>
<html>
<head>
<title></title>
</head>
<body>

<%
String name=null;
name = (String)session.getAttribute("name");
if(name==""||name==null)
{
out.print("你必须登录才行噢");
%>
<center>
<a href="register.jsp">注册</A>
<a href="login.jsp">登录</a>
</center>
<%
}
else
{
out.print("Hi, "+ name + " 欢迎您回来!");

%>

<a href="logout.jsp">注销</a>
<hr />
<br>
<br>
<table width="760" border=1 cellspacing=0 bordercolordark=#CCCCCC bordercolor=#ffffff align="center">
<tr>
<center>
<td width="6%">ID</td>
<td width="10%">姓名</td>
<td width="9%">妮称</td>
<td width="7%">密码</td>
<td width="15%">Email</td>
<td width="5%">性别</td>
<td width="32%">登陆时间 </td>
<td width="16%">IP</td>
</center>
</tr>


<%
try
{
String sql="select * from staff order by id DESC";
ResultSet rs=stmt.executeQuery(sql);

int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
String strPage;
int i;

//设置一页显示的记录数
intPageSize = 10;

//取得待显示页码
strPage = request.getParameter("pages");
if(strPage==null){
//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else
{
//将字符串转换成整型
intPage = Integer.parseInt(strPage);
if(intPage<1){ intPage = 1;}
}
//获取记录总数
rs.last();
intRowCount = rs.getRow();
//计算总页数
intPageCount =(intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((intPage-1) * intPageSize+1);
//显示数据
i = 0;

//if (rs.next()){
while(i< intPageSize && !rs.isAfterLast()){


int id=rs.getInt("id");
String uuser=rs.getString("name");
String nicheng=rs.getString("nickname");
String pass=rs.getString("password");
String email=rs.getString("email");
String sex=rs.getString("sex");
String time=rs.getString("lasttime");
String ip=rs.getString("ip");

%>

<tr><center>
<td><%=id%></td>
<td><%=uuser%></td>
<td><%=nicheng%></td>
<td><%=pass%></td>
<td><%=email%></td>
<td><%=sex%></td>
<td><%=time%></td>
<td><%=ip%></td>
</center>
</tr>
<%
}
rs.next();
i++;
}
rs.close();
stmt.close();
conn.close();
%>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td align="left" width="126"> 
<%out.print("共<font color=red>"+intRowCount+"</font>个主题 <font color=red>"+intPageSize+"</font>/页 共<font color=red>"+intPageCount+"</font>页");%>
当前第<font color=red><%=intPage%></font>页 </td>
<td width="634" height="23" align="right"> 
<%if(intPage<=1){%>
首页
<%}else{%>
<a href="main.jsp?pages=1">首页</a>
<%}%>
<%if(intPage>1){%>
<a href="main.jsp?pages=<%=intPage-1%>">上一页</a>
<%}else{%>
上一页
<%
}%>
<%if(intPage<intPageCount){%>
<a href="main.jsp?pages=<%=intPage+1%>">下一页</a>
<%}else{%>
下一页
<%
}%>
<%if(intPageCount<=1||intPage==intPageCount){%>
尾页
<%}else{%>
 <a href="main.jsp?pages=<%=intPageCount%>">尾页</a> 
<%}%>
</td>
</tr>
</table>


<%
}
catch(Exception e)
{
throw(e);
}
}
%>
</body>
</html>
...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kissseething 2007-08-16
  • 打赏
  • 举报
回复
to mx1029() ( ) 信誉:96

如果这样的话会不会增加代码量呀?
是不是在性能上有很大的提高?

因为不了解,也许问了些无知的问题。目前自己试不出优越性来,谢谢。
mx1029 2007-08-16
  • 打赏
  • 举报
回复
你可以去看看java数据库连接池方面的资料,不存在代码量高,关键是你的写法没有完全按照面向对象的思想,很多都是面向过程的,正规的做法是写一个通用的数据库操作bean,里面包括的连接的取得和释放,以后只要在需要的地方(jsp,servlet都可以)里得到这个数据库bean的实例,便可获得数据库连接/关闭的操作.而且以后如果更改数据库等,只需要更改该bean就可以了,所有的程序都不需要调整.
mx1029 2007-08-15
  • 打赏
  • 举报
回复
不同的页用自己的连接对象,而且需要时再去创建,不用是关闭.
不要公共的使用一个conn.jsp里创建的conn对象.
不要把PHP的那种包含页的思想拿到JSP中.
kissseething 2007-08-15
  • 打赏
  • 举报
回复
to chjiangsh() ( ) 信誉:100
先谢谢了,为什么要在这里定义
Connection con = DriverManager.getConnection("DatabaseURL");
Statement stmt = con.createStatement();

我的conn.jsp数据库连接里面已经有了呀?
草原可可 2007-08-15
  • 打赏
  • 举报
回复
你发的太多了,把核心的发了就好了
chjiangsh 2007-08-14
  • 打赏
  • 举报
回复
代码的风格不好,开始的时候,一定要养成好的编程风格!要把视图和控制,还有模型分开,不要把jsp写入很多java代码,我帮你看了一下,修改如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.text.*"%>
<%@ include file="inc/conn.jsp"%>
<%
//request.setCharacterEncoding("GB2312") ;
%>
<html>
<head>
<title></title>
</head>
<body>

<%
String name=null;
name = (String)session.getAttribute("name");
if(name==""||name==null)
{
out.print("你必须登录才行噢");
%>
<center>
<a href="register.jsp">注册</A>
<a href="login.jsp">登录</a>
</center>
<%
}
else
{
out.print("Hi, "+ name + " 欢迎您回来!");

%>

<a href="logout.jsp">注销</a>
<hr />
<br/>
<br/>
<table width="760" border=1 cellspacing=0 bordercolordark=#CCCCCC bordercolor=#ffffff align="center">
<tr align="center">

<td width="6%">ID</td>
<td width="10%">姓名</td>
<td width="9%">妮称</td>
<td width="7%">密码</td>
<td width="15%">Email</td>
<td width="5%">性别</td>
<td width="32%">登陆时间 </td>
<td width="16%">IP</td>

</tr>


<%
try
{
Connection con = DriverManager.getConnection("DatabaseURL");
Statement stmt = con.createStatement();
String sql="select * from staff order by id DESC";
ResultSet rs=stmt.executeQuery(sql);

int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
String strPage;
int i;

//设置一页显示的记录数
intPageSize = 10;

//取得待显示页码
strPage = request.getParameter("pages");
if(strPage==null){
//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else
{
//将字符串转换成整型
intPage = Integer.parseInt(strPage);
if(intPage<1){ intPage = 1;}
}
//获取记录总数
rs.last();
intRowCount = rs.getRow();
//计算总页数
intPageCount =(intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((intPage-1) * intPageSize+1);
//显示数据
i = 0;

//if (rs.next()){
while(i< intPageSize && !rs.isAfterLast()){


int id=rs.getInt("id");
String uuser=rs.getString("name");
String nicheng=rs.getString("nickname");
String pass=rs.getString("password");
String email=rs.getString("email");
String sex=rs.getString("sex");
String time=rs.getString("lasttime");
String ip=rs.getString("ip");

%>

<tr align="center">
<td><%=id%></td>
<td><%=uuser%></td>
<td><%=nicheng%></td>
<td><%=pass%></td>
<td><%=email%></td>
<td><%=sex%></td>
<td><%=time%></td>
<td><%=ip%></td>

</tr>
<%
}
rs.next();
i++;
}
rs.close();
stmt.close();
con.close();
%>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td align="left" width="126"> 
<%out.print("共<font color=red>"+intRowCount+"</font>个主题 <font color=red>"+intPageSize+"</font>/页 共<font color=red>"+intPageCount+"</font>页");%>
当前第<font color=red><%=intPage%></font>页 </td>
<td width="634" height="23" align="right"> 
<%if(intPage<=1){%>
首页
<%}else{%>
<a href="main.jsp?pages=1">首页</a>
<%}%>
<%if(intPage>1){%>
<a href="main.jsp?pages=<%=intPage-1%>">上一页</a>
<%}else{%>
上一页
<%
}%>
<%if(intPage<intPageCount){%>
<a href="main.jsp?pages=<%=intPage+1%>">下一页</a>
<%}else{%>
下一页
<%
}%>
<%if(intPageCount<=1||intPage==intPageCount){%>
尾页
<%}else{%>
 <a href="main.jsp?pages=<%=intPageCount%>">尾页</a> 
<%}%>
</td>
</tr>
</table>


<%
}
catch(Exception e)
{
throw(e);
}
}
%>
</body>
</html>

81,095

社区成员

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

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