我的jsp连接SQL出错,为什么呢?

rockrabbit 2003-08-18 04:01:41
我用tomcat+windows2000+sql2000,写的一个.java程序访问sql2000通过,但.jsp直接联接sql2000却出现很多错误(500)。而我的其他.jsp文件工作正常。为什么呢?
这是java程序和jsp程序:
1:java程序
import java.sql.*;
public class jdbc_sql
{
public static void main(String[] args)
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://jlwz:1433;DatabaseName=test";
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM NAME";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println("Your frist field is " + rs.getString("name"));
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception e)
{
System.err.println(e);
}
}
}
2:jsp程序:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://jlwz:1433;DatabaseName=test";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="select * from name";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
...全文
27 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qxf1998 2003-08-20
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
out.println("OK");
String url="jdbc:odbc:hzyc";
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from liuyan_temp order by id desc";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%><br>
您的第二个字段内容为:<%=rs.getString(2)%><br>
您的第三个字段内容为:<%=rs.getString(3)%><br>
您的第四个字段内容为:<%=rs.getString(4)%><br>
您的第五个字段内容为:<%=rs.getString(5)%><br>
您的第六个字段内容为:<%=rs.getString(6)%><br>
您的第七个字段内容为:<%=rs.getString(7)%><br>
您的第八个字段内容为:<%=rs.getString(8)%><br>
<br>
<%
}
%>
</body>
</html>
pnileotgx 2003-08-20
  • 打赏
  • 举报
回复
首先确定你是否把sqlserver的驱动装好了!
然后再检查你代码的错误!一不一步的调试啊!
monbit 2003-08-20
  • 打赏
  • 举报
回复
而且本身运行sql语句也需要捕获sqlException呀,呵呵,但愿只是这个问题啦
monbit 2003-08-20
  • 打赏
  • 举报
回复
哦,我知道了,你在jsp中没有try...catch呀。。。。。
那个Class.forName方法是需要捕获Exception的
monbit 2003-08-20
  • 打赏
  • 举报
回复
您的第一个字段内容为:<%=rs.getString(1)%>
这句话和原来还是有不同的,但是我想也不应该错亚。。。。
你改成rs.getString("name")试一试吧。。。。
我看了半天了,这个代码应该是没有什么问题的了,就是配置上出了错了
rockrabbit 2003-08-20
  • 打赏
  • 举报
回复
没有人帮我解决吗?55555
lyilei 2003-08-20
  • 打赏
  • 举报
回复
<%@ page import="com.microsoft.jdbc.sqlserver.SQLServerDriver"%>
在你得jsp文件中加入上面的这句话,在试试应该没有问题了。
rockrabbit 2003-08-18
  • 打赏
  • 举报
回复
1:我把三个.JAR文件拷贝到了java安装目录下的jre\lib\ext下面了,然后写了上面的那个.java 程序,用javac和java执行成功了。

2:我的tomcat的根目录下面没有lib目录,也没有WEB-INF/lib目录。看了大家的回复后,我又把这三个文件拷贝到tomcat的common\lib和server\lib下面,但仍然报错。

3:错误号是500,一大堆错误信息:

type Exception report

message

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

exception

org.apache.jasper.JasperException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke
.......(略)

root cause

javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.jdbc_sql_jsp._jspService(jdbc_sql_jsp.java:74)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
...(略)
--------------------------------------------------------------------------------

Apache Tomcat/4.1.24
ticlej 2003-08-18
  • 打赏
  • 举报
回复
报什么错误?你说的java能正常运行,是通过tomcat测试的吗?
另外你确定把三个.JAR文件拷贝到tomcat的lib或WEB-INF/lib目录下了吗
rockrabbit 2003-08-18
  • 打赏
  • 举报
回复
三个.JAR文件都已经拷过了呀,不然我前面的一个java程序也无法通过。
lynx1111 2003-08-18
  • 打赏
  • 举报
回复
装SQL SERVER 2000驱动
把三个.JAR文件考到LIB目录下!

81,091

社区成员

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

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