求肋!!我是菜鸟!我写了一个类来连接数据库。能类调用可以连到数据库。但是通JSP就是没有反映·!忘各位大侠指点迷津

jacky_hn 2006-02-17 03:34:15
package test;
import java.sql.*;
public class SQLConnection {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:sync";
Connection connect = null;
ResultSet rs = null;
String username="sa",psw="sa";
//String dbo= null;
// Connection dbo=null;
//ResultSet
public SQLConnection() {
//String sConnStr = "jdbc:odbc:sync";
try {
Class.forName(sDBDriver);
//DriverManager.getConnection(sConnStr,username,psw);

//sqlConn=java.sql.DriverManager.getConnection(strConn,sa,psw);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
//return Class.GetReflectionFactoryAction;

}

public ResultSet executeQuery(String sql)
{
try {
connect = DriverManager.getConnection(sConnStr,username,psw);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return rs;
}
这是页面调用JavaBean
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import ="test.SQLConnection"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<jsp:useBean id="ss" class="test.SQLConnection"></jsp:useBean>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<%
String strsql="select * from usefinfo";
ResultSet rs =ss.executeQuery(strsql);
while(rs.next())
{
out.println("sdf");
}
if(rs==null)
{out.print("null");}

%>
</body>
</html>

这是页面报错:
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.NullPointerException
org.apache.jsp.list_jsp._jspService(list_jsp.java:65)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

...全文
228 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yingtju 2006-02-18
java.lang.NullPointerException
org.apache.jsp.list_jsp._jspService(list_jsp.java:65)

找到list_jsp.java看看65行出了什么毛病
回复
执假以为真 2006-02-18
根据我的经验,把Tomcat文件夹或者list_jsp.java这个文件删除掉,再编译运行一次
回复
网络精灵 2006-02-18
我用你的代码,除.java的一半括号,url什么的外,我用mysql和resin测试通过。
回复
jacky_hn 2006-02-18
问题已经决解!
是数据源的问题。。
谢谢各位了。。。。。
回复
wpfonline 2006-02-17
页面报错不是说了吗 list_jsp.java这个文件的65行有错 你在看看
回复
bahors 2006-02-17
<jsp:useBean id="ss" class="test.SQLConnection"></jsp:useBean>
还差一个属性scope=page/session
回复
xiongbing528 2006-02-17
代码本身好象没错误..是不是路径问题啊.倒入class的时候
回复
jacky_hn 2006-02-17
嗯!是的。普通页面可以运行的。
路径是。WEB-INF/classes/test/SQLConnection.class
这个类SQLConnection.class调用其它类可以成功连接到数据库并且能查到数据库。
还在。。
我通面页来声明连接数据库是可以运的。

<%//@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import ="java.io.*"%>
<%@ page import ="java.lang.*"%>
<%@ page import ="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><title></title></head>
  <body>
  <%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sync";
String user="sa";
String password="sa";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//String sql="select * from userinfo";
String sql="select * from userinfo";
//ResultSet rs=stmt.executeQuery(sql);
ResultSet rs =stmt.executeQuery(sql);
while(rs.next())
{
out.print(rs.getString(2)+"<br/>");
}
%></body>
  </html>
能成功连接到数据库并有结果输出

如果我用SQLConnection.class来做为Bean的就不行。
不知道怎么回事。
以前是可以的。只最最近我装了系统。现在不能连上了。。求助。。也不知道是我的路径的问题
还是我环境变量配错了。。。
郁闷当中。。。。。。。。
回复
李欣欣1981 2006-02-17
你确定SQLConnection类的路径如下:WEB-INF/classes/test/SQLConnection.class
回复
infowain 2006-02-17
try {
Class.forName(sDBDriver);
//DriverManager.getConnection(sConnStr,username,psw);

//sqlConn=java.sql.DriverManager.getConnection(strConn,sa,psw);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
//return Class.GetReflectionFactoryAction;

这一段不要写在构造函数里面,写到executeQuery方法里面
回复
网络精灵 2006-02-17
你普通jsp能运行吗?应该是应用服务器配置错误。你贴出来的bean少一半大括号。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-17 03:34
社区公告
暂无公告