我刚开始学习网页制作,觉得jsp很好,决定开始学,可刚开始想要大干一番,缺被一个问题绊住无法继续前进,求求哪位高手指点一下,在下感激不尽啊~
我只是想简单的用Jsp访问sql server,可就是连不上,也没有错误,网上的资粮我几乎看了个便,所有方法都试过了,仍然不见效~
我想先做一个用户登陆界面,用Jsp进行连接并验证数据库中用户信息,这时就出问题了饿~
后来只用Jsp测试连接数据库,好像也没连接上;
下面是我的Jsp代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=GB2312"%>
<%@page  import="java.sql.*" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
<%
    String suserID,spassword,susername;     /* 用来保存在session中*/
    suserID="123";   
    spassword=null;                                     /*在数据库pubs中建立了Users表,
                                                                 其中有一个用户名是123,密码456。都是Varchar类型*/
    session.setAttribute("suserID", suserID);
    out.print(session.getAttribute("suserID"));
    
    String sql="select * from Users where userID='"+suserID+"'";
    Connection con=null;
    Statement stmt=null;
    ResultSet rs=null;
    try
    {
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
        String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
        Connection conn= DriverManager.getConnection(url);
        stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        rs=stmt.executeQuery(sql);
        while(rs.next()){
            if(suserID.equals(rs.getString("userID")))
                session.setAttribute("spassword", rs.getString("password"));
                
        }
    }catch(Exception sqlex1)
            {System.out.println("数据库连接失败");}finally{
                if(con!=null){
                    try{
                        con.close();
                    }catch(SQLException sqlex2){
                        sqlex2.printStackTrace();
                    }
                }
            }
%>
        <h1>WELCOME TO VISIT MY WORLD!</h1>
        <%
        out.print(session.getAttribute("suserID"));
        out.print(session.getAttribute("spassword"));
        %>
    </body>
</html>
    </head>
    <body>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我先启动数据库,然后启动NetBeans和tomcat,最后运行Jsp~tomcat应该没问题 环境变量为D:\apache-tomcat-6.0.24
 
我的CLASSPATH为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\Program Files\Microsoft SQL Server JDBC Driver 2.0\sqljdbc_2.0\chs\sqljdbc.jar 网上说要jdbk驱动我下了 其中有两个主要jar文件:
sqljdbc4.jar和sqljdbc.jar
 
我把他们都复制到java_Home里的bin和tomcat的bin文件夹里了。

解决方案 »

  1.   

    你应该把你的异常信息一起贴出来,另外dao语句是最好不要写到jsp页面里
      

  2.   

    改成这样试试
    Connection conn= DriverManager.getConnection(url);
    stmt=con.createStatement();
    rs=stmt.executeQuery(sql);
    一楼说的对:业务逻辑要封装,写在DAO里
    什么是业务逻辑:就是客户要处理的请求,就叫业务逻辑
      

  3.   

    你把jdbc的3个文件添加到workspace里面去试试~
    我以前连接不上
    老师说要添加进去
    结果添加进去就好了
    是添加到当前项目里面  
    我的目录是
    D:\workspace\denglu\WebContent\WEB-INF\lib
    你添加到相应里面试试~
      

  4.   

    语句写的基本上没问题,可以从以下几个步骤寻找解决方案:
    1,jdbc连接数据库需要的3个jar包在不在lib里面;
    2,sql2000sp4补丁打了没?
    3,确定sql2000的端口是不1433?
    对了,你的链接数据库的登录账户和密码没写
      

  5.   

    我的问题已经解决,是把sql升级到sp4才好使,谢谢啦 ~