下面的程序 是验证用户名和密码的,运行时说??????行(为了方便查找而标上的,原程序中没有)有错误我用的是sql server 2000  登录时不用用户名和密码
<%@ page language="java" import="java.util.*"  import="java.sql.*;"  pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'LoginCl.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
   <%
     //接收用户名和密码
     String u=request.getParameter("username");
     String p=request.getParameter("passwd");
     
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver" );    ???????? Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Test1","","");
    
    Statement sm=ct.createStatement();
    ResultSet rs=sm.executeQuery("select passwd from users where username='"+u+"'");
    if(rs.next())
    { //能进来说明用户存在
     if(rs.getString(1).equals(p))
      {
       response.sendRedirect("wel.jsp?user="+u);
      }
      else
          {//密码错误
           response.sendRedirect("Login.jsp?errNo=1");
          }
    }else
    { //说明用户名不存在
     response.sendRedirect("Login.jsp?errNo=2");
    }
     
     
    %>
  </body>
</html>

解决方案 »

  1.   

     ???????? Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Test1","","");
    这行你自己好好看,我怎么都感觉写的很有问题啊?
      

  2.   

    ???????? Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Test1","","");
    前面的问号是什么怎么回事?
      

  3.   

    连接sql2000的数据库和2005的时候,url会不一样
    好好检查一下那些细节,就像连接字符串什么的。
    再就是检查数据库端口,服务开了没不过,还是要看具体的异常内容
    你不妨把错误信息贴出来晒晒。。会有人知道的。。
      

  4.   

    127.0.0.1改成localhost试试么,有时候这破玩意也错
      

  5.   

    看不懂,???????? Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Test1","","");
    ""他是一个空啊,你都说了不用用户名和密码
      

  6.   

    错误提示。登录数据库时不需要用户名和密码
    exception org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  7.   

    1. SQLServer 2000 有没有打SP4补丁?
    2. 查看数据库端口是否打开?是否为默认的1433?
    3. jdbc语句中的SERVER_NAME是否正确?用户名密码是否正确?
    4. SQL SERVER远程服务器连接,RPC服务是否勾选?
    5. 检查防火墙设置是否阻止连接端口?
      

  8.   

    jdbc:sqlserver://127.0.0.1:1433;DataBaseName=Test1  连接串是这样写的
      

  9.   

    看了hadisiboendadi的提示
    自己试了好久,终于找到答案了,是sp4补丁的问题,以前安装的补丁有问题,又下了一个装了,1433端口就打开了