apache+tomcat+mysql奇怪的jsp问题。? 你在1.jsp中的某个变量为空抛出来的异常而你在2.jsp中对那个变量赋值了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.jsp<html><head><title>view all</title></head><body><%@ page contentType="text/html;charset=gb2312" %><%@ page language="java" import="java.sql.*" %><jsp:useBean id="database" scope="page" class="course.database" /><% String sql = "select id,name from course"; ResultSet rs = database.executeQuery(sql);%><% int i=0; String name=""; int id=0; while(rs.next()) { name=rs.getString("name"); id=rs.getInt("id"); out.println(name+rs); }%></body></html>database.java:package course;import java.sql.*;public class database { String sDBDriver ="org.git.mm.mysql.Driver"; String url="jdbc:mysql://localhost/course?user=mysql&password=mysql&useUnicode=true&characterEncoding=gb2312" ; Connection conn=null; Statement stmt=null; ResultSet rs=null; public database() { try { Class.forName("org.gi.mm.mysql.Driver").newInstance(); }catch (ClassNotFoundException e) { System.out.println(e.getMessage()); }catch (Exception ex) { System.out.println(ex.getMessage()); } } public synchronized ResultSet executeQuery (String sql) { rs=null; try { conn = DriverManager.getConnection(url); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); }catch(SQLException e) { System.err.println(e.getMessage()); } return rs; } public synchronized void executeUpdate(String sql) { stmt = null; rs = null; try { conn = DriverManager.getConnection(url); stmt = conn.createStatement(); stmt.executeUpdate(sql); stmt.close(); conn.close(); }catch(SQLException e) { System.err.println(e.getMessage()); } }}2.jsp<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url ="jdbc:mysql://localhost/course?user=mysql&password=mysql&useUnicode=true&characterEncoding=GB2312" ;Connection conn= DriverManager.getConnection(url);Statement stmt=conn.createStatement();String query="select name,id from course";ResultSet rs=stmt.executeQuery(query);while(rs.next()){ String s=rs.getString("name"); int id=rs.getInt("id"); out.print(s+id+"<br>");}%></body></html> out.println(name+rs);这句话是什么意思? 噢,是out.println(name+id);贴上去修改的时候改错了,原来的没有错的。不好意思 那可能就是你的rs.getString("name")或者rs.getInt("id")有空值,你把rs.getString("name")全部System.out.println出来看看。 rs.getString("name")和rs.getInt("id")不是空的,都是有输出的。况且我把1.jsp的这两行都注释掉,不输出东西,他都会有这样的错误。2.jsp他也是调用rs.getString("name")和rs.getInt("id"),但它输出的结果都没有是空。我猜想应该是bean的问题。 刚刚测试过,第一次1.jsp的时候得到的rs竟然是null的,所以有以上的错误。如果先运行了2.jsp之后,1.jsp的时候得到的rs就正常了,请问这是为什么? org.apache.jsp.course.index_jsp._jspService(index_jsp.java:82)说明错误在index_jsp.java的82行,index_jsp.java在tomcat的work文件夹下,你可以看看82行是哪句话.呵呵!我猜也可能是bean的错误,不过这种看代码找错误有点费劲:)你把82的那句话贴出来看看. 我也想看,但index_jsp.java根本就没有82行那么多!!我实在找不出bean的错误。大家帮忙看看吧。!!为什么rs返回的是null值。 找到错误了,一个超低级的错误。org.git.mm.mysql.Driver应该是org.gjt.mm.mysql.Driver,bean里面写错了。所以永远不会class.forName成功,只有当2.jsp(里面写对了)运行时,才找到了那个driver,所以1.jsp也才可以运行。。太不好意思,浪费了大家这么多时间,自己真粗心。。可惜我只有50分,不然不会给更多的分的。太感谢了!!! flex中如何动态填充颜色 ssh项目中spring配置的数据库连接池问题 救命啊,关于Servlet跳转问题 分页 hibernate碰到奇怪的问题 编程就如游戏。我想是这样 weblgoic 8.1 的问题 关于JSP中,URL重写问题 在线等:servlet显示FTP的图片 有没有IO非阻塞模式实现方式,求给个实例 struts显示列表出错!大家帮帮手 基于jboss的axis web service权限问题
<html>
<head>
<title>view all</title>
</head>
<body>
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="database" scope="page" class="course.database" />
<%
String sql = "select id,name from course";
ResultSet rs = database.executeQuery(sql);
%><%
int i=0;
String name="";
int id=0;
while(rs.next())
{
name=rs.getString("name");
id=rs.getInt("id");
out.println(name+rs);
}
%>
</body>
</html>database.java:package course;
import java.sql.*;
public class database
{
String sDBDriver ="org.git.mm.mysql.Driver";
String url="jdbc:mysql://localhost/course?user=mysql&password=mysql&useUnicode=true&characterEncoding=gb2312" ;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
public database()
{
try {
Class.forName("org.gi.mm.mysql.Driver").newInstance();
}catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
public synchronized ResultSet executeQuery (String sql)
{
rs=null;
try {
conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch(SQLException e) {
System.err.println(e.getMessage());
}
return rs;
}
public synchronized void executeUpdate(String sql)
{
stmt = null;
rs = null;
try {
conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}catch(SQLException e) {
System.err.println(e.getMessage());
}
}
}
2.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/course?user=mysql&password=mysql&useUnicode=true&characterEncoding=GB2312" ;
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
String query="select name,id from course";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
String s=rs.getString("name");
int id=rs.getInt("id");
out.print(s+id+"<br>");
}
%>
</body>
</html>
这两行都注释掉,不输出东西,他都会有这样的错误。2.jsp他也是调用rs.getString("name")和rs.getInt("id"),但它输出的结果都没有是空。我猜想应该是bean的问题。
2.jsp之后,1.jsp的时候得到的rs就正常了,请问这是为什么?
我实在找不出bean的错误。大家帮忙看看吧。!!为什么rs返回的是null值。
.Driver,bean里面写错了。所以永远不会class.forName成功,只有当2.jsp(里面写对
了)运行时,才找到了那个driver,所以1.jsp也才可以运行。。
太不好意思,浪费了大家这么多时间,自己真粗心。。可惜我只有50分,不然不会给
更多的分的。太感谢了!!!