破釜沉舟论坛 » WEB 开发 » jsp连接sql server 2000问题

2006-4-16 01:02 sharprick
jsp连接sql server 2000问题

  我的WEB服务器为TOMCAT5.0,后台数据库为sql server 2000
使用jsp连数据库时,使用的是Microsoft SQL Server 2000 Driver

C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar

这三条语句均加入环境变量设置中了
但是测试数据库连接时出错,请问这是什么问题啊?
description The server encountered an internal error () that prevented it from fulfilling this request
org.apache.jasper.JasperException: /test.jsp(1,1) Unterminated <%@ page tag
   org.apache.jasper.compiler.DefaultErrorHandler.jspErrorDefaultErrorHandler.java:39)
   org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
   org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:134)
   org.apache.jasper.compiler.Parser.parseDirective(Parser.java:511)
   org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
   org.apache.jasper.compiler.Parser.parse(Parser.java:126)
   org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
   org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
   org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
   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)

2006-4-16 01:03 sharprick
我的源代码是:
<%@page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
<html>
<body>
<% 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa";
String password="admin";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select job_id,job_desc from jobs";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) { %>
您的第一个字段内容为:<%=rs.getString(1)%><br>
您的第二个字段内容为:<%=rs.getString(2)%><br>
<% 
} 
%>
<% 
out.print("数据库操作成功,恭喜你"); 
%>
<% 
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

2006-4-16 18:23 xiaocao-x
从错误提示来看,错并不在数据库方面。仔细检查一下你的源代码的第一行。

2006-4-17 03:59 sharprick
好像查不出有什么问题啊?

2006-6-11 18:45 藏马
唉,我遇到和你比较类似的问题。
一直没能得到解决,我是买了参考书实例学习的,我按照书上讲的配置好了MSSQL2000,TOMCAT5.0,jdk1.42,但是在TOMCAT5.0的欢迎界面里的Tomcat Manager登陆后,在Applications(应用程序管理)列表里面想打开光盘附带的实例(已经导入数据库)--“BookSupermarket”,点击后提示:
HTTP Status 500 -
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: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)
   org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
   org.apache.jsp.index_jsp._jspService(index_jsp.java:91)
               ......
root cause
              java.lang.NullPointerException
   org.apache.jsp.left_jsp._jspService(left_jsp.java:182)
   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)
              .......
note  The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs

错误大抵是上面这些

2006-6-11 18:54 藏马
尔后,我在CNJSP里面看到一篇非常老的文章(2002年),讲到配置的时候,提到一个问题,我看不很明白:
请大家知道商榷。
  如下原文:Ж
   SET CLASSPATH=.;C:\JDK140\LIB\merlia.jar;C:\JDK140\LIB\dt.jar;C:\JDK140\LIB\tools.jar;C:\JDK140\LIB\htmlconverter.jar

注意classpath里面的那个merlia.jar,这是inet的jdbc driver,是type 4的.

下面就说jdbc driver,下载页面是:[url]http://www.inetsoftware.de/English/Produkte/MERLIA/default.htm[/url]
在左边选择 Download,然后填一个表格就可以下载了.下载后是zip文件,我把merlia.jar解到了java的lib下面,还改了名字(因为刚开始的时候出过问题,我胡乱想出的办法,其实没有必要.但是钝刀说了,大小写要一致!).

好了,到现在为止,一个jsp server就搞定了.测试jsp的方法是:[url]http://localhost:8080[/url],测试数据库的方法是:先编译merlia解压目录下sample中的ClassicDriver.java(javac ClassicDriver.java),然后运行(java ClassicDriver>result.txt),注意要启动mssql server.
  Ж
  里面提到一个测试数据库的问题,是不是在配置JSP附带MSSQL2000服务器的时候还要另外设置一些东西呢,网上一般都是讲TOMCAT+JDK 什么的,而当TOMCAT+JDK+MSSQL2000的时候,在环境变量里需要添加一些东西吗。我和楼主遇到的运行出错的情况会不会是由  jdbc driver 引起的呢。那又该如何解决呢,请大侠帮忙。

2006-6-14 11:16 藏马
郁闷,期待中

2006-6-14 17:09 xiaocao-x
楼主的问题在于[code]<%@page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
[/code]应该改为[code]<%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>[/code]
注意看其中的区别。

至于藏马的问题,我建议你去tomcat目录下的work文件夹下查看一下jsp文件的源代码。看看里面的left_jsp.java文件的第182行。

2006-6-18 10:01 藏马
谢谢斑竹费心了!
  找到那个left_jsp.java文件,182行是个 while(rs_bbs.next()) 语句,根据异常(java.lang.NullPointerException)提示,估计是这里对数据库操作出了问题。
  我还是应该把基础打牢,把做JSP用到的JAVA类库资源熟悉了,再来深入学习实例。
我用的是光盘上的实例,完全按照指定的方法配置好了,都出这些源代码问题,人民邮电出的书真太垃圾了,我调试了几个源代码程序,都有些问题。这还要靠自己解决。

页: [1]
查看完整版本: jsp连接sql server 2000问题


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.