End of stream was detected on a read
jdbc:microsoft:sqlserver://localhost:8080;DatabaseName=loginMSSQL的port 默认是1433
你是否吧1433改成了8080端口

解决方案 »

  1.   

    我tomcat里设置的端口为8080,所以用它了
    SQL Server Configuration Manager里面的IPALL的TCP端口设置为1433,TCP动态端口为空
    用1433端口访问不了页面,用8080,就可以访问,你说有影响么?
      

  2.   

    tomcat的端口是8080,但数据库的端口默认是1433.如果你没改过数据库的端口,那就把上面的代码改为1433吧
      

  3.   

    这是一个Bug   
        
      参考:   
      http://support.microsoft.com/?kbid=823896   
        
      安装SQL   Server   2000   Driver   for   JDBC最新的补丁
      

  4.   

    页面浏览用TOMCAT,访问的是TOMCAT的端口,比如8080
    你这里 String url="jdbc:microsoft:sqlserver://localhost:8080;DatabaseName=login"; 
    是连接数据库,要用数据库的端口连接
    2个端口不一样的
      

  5.   

    8080是tomcat供别人访问的端口,而1433是SQL SERVER厂商 提供给各种数据库的端口,供各种数据库连接使用的,你要连上这个数据库当然要用sql server 的1433端口!我是这么认为的!
      

  6.   

    把String url="jdbc:microsoft:sqlserver://localhost:8080;DatabaseName=login"; 
    改为:
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login"; 
    试一下
      

  7.   

    然后看一下DatabaseName是不是login
      

  8.   

    <%@ page language="java" import="java.sql.*" pageEncoding="gb18030"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <body>
    <%
    String name=request.getParameter("u");
    String pass=request.getParameter("p");
    String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    try{
    Class.forName(driver);
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login";
    Connection con=DriverManager.getConnection(url,"sa","123");
    String sql="insert into users values(?,?)";
    PreparedStatement ps=con.prepareStatement(sql);
    ps.setString(1,name);
    ps.setString(2,pass);
    int x=ps.executeUpdate();
    if(x>0){
    out.println("注册成功");
    }
    else
    {
    out.println("不可注册");
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    %>
      </body>
    </html> 
    先加一个try catch 看看有什么异常没有
    连接数据库端口改成1433