日期:2014-05-17  浏览次数:20688 次

我敢肯定这个问题很新手。。。
不多说,上代码
我就想问,为什么我每次刷新这个页面的时候,出来的列表会重复的加在上面的表下面。。
<%@ page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%!
String str ="";
private void tree(Connection conn, int id ,int level){
Statement stmt = null;
ResultSet rs = null;
String preStr = "";
for(int i=0;i<level;i++){
preStr +="----";
}

try{
stmt = conn.createStatement();
String sql = "select * from article where pid=" + id;
rs = stmt.executeQuery(sql);
while(rs.next()){
str +="<tr><td>" + rs.getInt("id") + "</td><td>"+
preStr +"<a href='ShowArticleDetail.jsp?id="+ rs.getInt("id")+" '>"+ rs.getString("title") +"</a>" + "</td></tr>";
if(rs.getInt("isleaf")!=0){
tree(conn, rs.getInt("id"),level+1);
}
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
rs=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
%>
<%
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/bbs?user=root&password=root";
Connection conn = DriverManager.getConnection(url);

Statement stmt = null;
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from article where pid = 0");
while(rs.next()){
str += "<tr><td>" + rs.getInt("id") + "</td><td>"+
"<a href='ShowArticleDetail.jsp?id="+ rs.getInt("id")+" '>"+ rs.getString("title") +"</a>"+"</td></tr>";
if(rs.getInt("isleaf")!=0){
tree(conn,rs.getInt("id"),1);
}
}

rs.close();
stmt.close();
conn.close();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<table  border=1>
<%= str%>
</table>

</body>
</html>



我就想问,为什么我每次刷新这个页面的时候,出来的列表会重复的加在上面的表下面。。
java jsp

------解决方案--------------------
你这个排版 td都跑html上面的了

我也不清楚  是不是缓存