新手求助,急急急急急急急急急

hai3qing 2004-04-15 09:13:36
我的程序:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%!
int PageSize=20;
int ShowPage=1;
int RowCount=0;
int PageCount=0;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;%>
<%
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.33:1433;DatebaseName=DB_YHMSG","sms1","sms1sfwss");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("select * from TYHXX");
rs.last();
RowCount = rs.getRow();
PageCount = ((RowCount% PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1);
}
catch(Exception ex){
System.out.println(ex.toString());}



%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<font size=5 color="blue">
<center>数据库管理--记录集分页显示</center>
</font>
<HR>
<P></P>
<center>
<%=rs.getString(2)%>
<h3>目前在第<font size=4 color="red"><%=ShowPage%></font>页,共有

<%try{rs.close();
stmt.close();
con.close();

}
catch(Exception ex){
System.out.println(ex.toString());
}%>

</html>
报的错误:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause

java.lang.NullPointerException
org.apache.jsp.bb_jsp._jspService(bb_jsp.java:86)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note The full stack trace of the root cause is available in the Tomcat logs.

我的环境变量是这样设的:
.;c:\j2sdk1.4.2\lib\mssqlserver.jar;c:\j2sdk1.4.2\lib\msbase.jar;c:\j2sdk1.4.2\lib\msutil;c:\j2sdk1.4.2\lib\tools.jar;c:\j2sdk1.4.2\lib\dt.jar;c:\j2sdk1.4.2\jre\lib\ext;d:\cjdf\web-info\lib;
请高手们给个解决办法
...全文
44 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
CoolAbu 2004-04-15
  • 打赏
  • 举报
回复
把msbase.jar mssqlserver.jar msutil.jar 这3个驱动Copy到webapps\你的webapp\WEB-INF\lib下,然后重启服务试试。

先要确保你的MSSQL服务器是混合模式登陆的。
ireance 2004-04-15
  • 打赏
  • 举报
回复
有可能是你环境变量就设置有问题。你 msbase.jar mssqlserver.jar msutil.jar 是不是放在Apache Software Foundation\Tomcat 5.0\common\lib 下面,即lib这个文件夹中??如果是的话,那么环境变量-用户变量 里 TOMCAT_HOME的值直接是 C:\Program Files\Apache Software Foundation\Tomcat 5.0就可以了。系统变量里 ClassPath值就是 .;$JAVA_HOME\LIB;$TOMCAT_HOME\COMMON\LIB 即可。
hai3qing 2004-04-15
  • 打赏
  • 举报
回复
还是这个错误:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.bb_jsp._jspService(bb_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(DriverManager.java:512)
java.sql.DriverManager.getConnection(DriverManager.java:171)
org.apache.jsp.bb_jsp._jspService(bb_jsp.java:54)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

hai3qing 2004-04-15
  • 打赏
  • 举报
回复
我是没办法了:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%!
Connection con=null;
Statement stmt=null;
ResultSet rs=null;%>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.33:1433;DatebaseName=DB_YHMSG","sms1","sms1sfwss");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("select * from TYHXX");
if(rs.next())
{%>
<%=rs.getString("phonenumber")%>
<%}rs.close();
stmt.close();
con.close();
%>
这样还不行,但用ODBC连可以
qiyongjun2003 2004-04-15
  • 打赏
  • 举报
回复
while(rs.last())
umbrella1984 2004-04-15
  • 打赏
  • 举报
回复
rs = stmt.executeQuery("select * from TYHXX");
rs.next();//加这一条试下
String ccc=rs.getString("phonenumber");
hai3qing 2004-04-15
  • 打赏
  • 举报
回复
回复人: rainworm(上帝是只狗) ( )

我觉得你程序的错误不止一个,呵呵,先检查语法,再检查数据库连接,应该就没问题了

大哥,给点指示行吗,程序和上面的一样



rainworm 2004-04-15
  • 打赏
  • 举报
回复
我觉得你程序的错误不止一个,呵呵,先检查语法,再检查数据库连接,应该就没问题了
hai3qing 2004-04-15
  • 打赏
  • 举报
回复
可我把程序该了,就是忘写输出了
我加了<%=ccc%>
但还是上面的错误
我的系统是2003server
chashui 2004-04-15
  • 打赏
  • 举报
回复
如果没有找到数据库
你那个catch会抛出异常信息的

同意 CoolAbu(阿卜-Never Stop(★★★★))
hai3qing 2004-04-15
  • 打赏
  • 举报
回复
我把程序改的简单了,这下程序应该没问题了吧:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%!
Connection con=null;
Statement stmt=null;
ResultSet rs=null;%>
<%

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.33:1433;DatebaseName=DB_YHMSG","sms1","sms1sfwss");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("select * from TYHXX");
String ccc=rs.getString("phonenumber");
%>
<%rs.close();
stmt.close();
con.close();
%>
但还是有错:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.bb_jsp._jspService(bb_jsp.java:101)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
应该是没找到驱动吧
hai3qing 2004-04-15
  • 打赏
  • 举报
回复
好象就是没有找到我的数据库,为什么?有什么办法解决么
CoolAbu 2004-04-15
  • 打赏
  • 举报
回复
rs.last();
你在前面用了last方法,然后又没有把指针移到有数据的列,然后又用getString来取。这时候记录已经到了结尾,没有数据可以取了,所以报错。
<%=rs.getString(2)%>
rainworm 2004-04-15
  • 打赏
  • 举报
回复
你在前面rs.last(),后面又<%=rs.getString(2)%>,这样可能会出现错误。你试试在rs.last()之前定义个String ccc=rs.getString(2),然后把后面的<%=rs.getString(2)%>改为<%=ccc%>
yzwkk 2004-04-15
  • 打赏
  • 举报
回复
问题出在这
RowCount = rs.getRow();
PageCount = ((RowCount% PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1);

没有得到值
ireance 2004-04-15
  • 打赏
  • 举报
回复
你把<%=rs.getString(2)%>这条语句去掉,试试是不是能编译通过??我去掉以后是可以显示正常页面的。另外我sqlserver://后面直接改成IP的。没有要端口号。
qdcomn 2004-04-15
  • 打赏
  • 举报
回复
空指针错误
你可以用out.print();out.close();一步一步看看
gjd111686 2004-04-15
  • 打赏
  • 举报
回复
注意空值

81,092

社区成员

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

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