简单测试JSP,出现问题,JSP代码:<%@ page language="java" contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String memberName = null;
int logontimes = -1;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
};
try{
Connection conn = DriverManager.getConnection("jdbc:odbc:My_Book");
Statement stmt = conn.createStatement();
String strSQL= "SELECT logon,name FROM buyinfo WHERE ID = 'wow' AND pwd = '123'";
rs = stmt.executeQuery(strSQL);while (rs.next()){
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
} stmt.close();
conn.close();}
catch(SQLException e){
System.err.println( e.getMessage());
}
%>
Logon:
<%=logontimes%>
Name:
<%=memberName %></body>
</html>应该输出结果是Logon: 11 Name: wow 但实际上输出却是 Logon: -1 Name: null 请问这是什么地方出的问题?补充一下
我的环境是:Tomcat6.0 数据库是Access,
数据库在JAVA程序下访问正常,只是在JSP情况下不能正常。
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String memberName = null;
int logontimes = -1;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
};
try{
Connection conn = DriverManager.getConnection("jdbc:odbc:My_Book");
Statement stmt = conn.createStatement();
String strSQL= "SELECT logon,name FROM buyinfo WHERE ID = 'wow' AND pwd = '123'";
rs = stmt.executeQuery(strSQL);while (rs.next()){
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
} stmt.close();
conn.close();}
catch(SQLException e){
System.err.println( e.getMessage());
}
%>
Logon:
<%=logontimes%>
Name:
<%=memberName %></body>
</html>应该输出结果是Logon: 11 Name: wow 但实际上输出却是 Logon: -1 Name: null 请问这是什么地方出的问题?补充一下
我的环境是:Tomcat6.0 数据库是Access,
数据库在JAVA程序下访问正常,只是在JSP情况下不能正常。
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
} 换成
if (rs.next()){
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
}
不知道符不符合要求
这句话直接在数据库控制台执行有返回结果吗?
有结果,直接在JAVA下运行,很正常就是在JSP下出不来结果,有点奇怪,呵呵
while (rs.next()){
logontimes=rs.getInt(1);
memberName=rs.getString();
}
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
} 在JAVA测试通过。所以不太像是这里的问题
感觉是不是我的Tomcat出问题呢?
while (rs.next()){
logontimes=rs.getInt(1);
memberName=rs.getString(2);
}
还是出不来结果,
所以我猜我的程序应该是没有错的所以猜想是不是Tomcat配置出错,或者JSP连接数据库还需要什么辅助插件呢?
看看输出什么?
或者 System.out.println(rs.next());都试了
什么输出都没有我也从新做了个JSP+Access的程序,结果也是什么都没有越来越感觉是我的机子配置出问题了
今天先顶一下 防止沉了
明天用SQL server 再试一下
将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
如果开启了对当前行的输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet 对象的警告链。System.out.println(rs.next());应该输出true或者false,如果什么都没输出,可能就是抛异常了,看看后台输出吧。
while (rs.next()){
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
} 2.试试先
Logon:
<%=logontimes%>
Name:
<%=memberName %>
再关掉conn,stmt
Connection conn = DriverManager.getConnection("jdbc:odbc:My_Book");
Statement stmt = conn.createStatement();
String strSQL= "SELECT logon,name FROM buyinfo WHERE ID = 'wow' AND pwd = '123'";
rs = stmt.executeQuery(strSQL);
if(rs!=null)
while (rs.next()){
try{
System.out.println(rs.getInt("logon")); //看看打印出???????
logontimes=rs.getInt("logon");
}catch(Exception ex){
System.out.println("logontimes Error:"+ex.getMessage());
}
try{
System.out.println(rs.getInt("name"));//看看打印出???????
memberName=rs.getString("name");
}catch(Exception ex){
System.out.println("memberName Error:"+ex.getMessage());
}
}
}
}catch(SQLException e){
System.err.println( e.getMessage());
}finally{
try{
if(conn!=null)
conn.close();
}catch(Exception er){}
try{
if(stmt!=null)
stmt.close();
}catch(Exception er){}
}
try{
System.out.println(rs.getInt("logon")); //看看打印出???????
logontimes=rs.getInt("logon");
}catch(Exception ex){
System.out.println("logontimes Error:"+ex.getMessage());
}
try{
System.out.println(rs.getInt("name"));//看看打印出???????
memberName=rs.getString("name"); rs.getInt和rs.getString 好像只能取一次值吧?
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%!
String memberName = null;
int logontimes = -1;
ResultSet rs = null;
%>
<%
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
};
try{
Connection conn = DriverManager.getConnection("jdbc:odbc:My_Book");
Statement stmt = conn.createStatement();
String strSQL= "SELECT logon,name FROM buyinfo WHERE ID = 'wow' AND pwd = '123'";
rs = stmt.executeQuery(strSQL);while (rs.next()){
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
} stmt.close();
conn.close();}
catch(SQLException e){
System.err.println( e.getMessage());
}
%>
Logon:
<%=logontimes%>
Name:
<%=memberName %>
问题出在Tomcat的配置上,
我用SUN Application Server PE 9 作服务器
成功的输出了结果,果然不是程序的问题,而是服务器配置的问题谢谢大家对我的问题提出的解决方法,人很多,20分数不知道该给谁,所以最后给brooksychen(初晨之阳) 了
他是最早回应的,而且提出方法,让我学到很多。