首先声明我没有使用所谓的ecplipse或者是my eclipse,就是利用tomcat服务器建立了一个虚拟目录(path="/test" ),然后在浏览器中进行输入都可以运行的,但是当需要用到数据库的就遇到了问题。我是小白,写了一个注册的页面register.jsp和另外的一个jsp负责显示注册时写得信息:还有javabean Register.java 主要是servlet 中需要与数据库连接,我电脑上安装的时sql server 2005,我检查了代码是没错的,填写注册的信息后,点击提交--》
出现错误:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect 
1.我下载了sql server 2005 jdbc的驱动包,把那个sqljdbc.jar复制到了Tomcat你的conmon\lib里(这里是这样吧???)2.我开启了sql server 2005,也在那个sql server configuration manager中的那个sqlserver 2005中的网络配置点开那个tcp/ip协议--都安装网上所说的那个设置了那个协议里面的东西(端口1433);可就总是会出现这样的错误(貌似开启那个端口后,马上就又杀毒软件报告有人攻击偶,我滴的神啊!!)3.

解决方案 »

  1.   

    http://xiao-maijia.iteye.com/blog/419924
      

  2.   

    javabean如下:package mybean.data;
    public class Register{

    String logname="",password="",email="",phone="",message="";

    String backNews;

    public void setLogname(String name) {

    logname=name;
    }
    public String getLogname(){

    return logname;
    }
    public void setPassword(String pw){

    password=pw;
    }
    public String getPassword(){

    return password;
    }
    public void setEmail(String em){

    email=em;
    }
    public String getEmail(){

    return email;
    }
    public void setPhone(String ph){

    phone=ph;
    }
    public String getPhone(){

    return phone;
    }
    public void setMessage(String ms){

        message=ms;
        
    }
    public String getMessage(){

    return message;
    }
    public void setBackNews(String bn){

    backNews=bn;
    }
    public String getBackNews(){

    return backNews;
    }
    }
      

  3.   

    servlet如下:
    package myservlet.control;
    import mybean.data.*;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class HandleRegister extends HttpServlet{
    public void  init(ServletConfig config) throws ServletException{
    super.init(config);
    try
    {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    }
    catch(Exception e){}
        }
    //中文处理方法,提高程序的健壮性
    public String handleString(String s){
    try{

    byte[] bb=s.getBytes("ISO-8859-1");

    s=new String(bb);

       }
    catch(Exception ee){}
    return s;
           }
    public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{

    Connection con;

    Statement sql;

    Register reg=new Register();

    request.setAttribute("register",reg);

    String logname=request.getParameter("logname").trim(),
           password=request.getParameter("password").trim(),
           email=request.getParameter("email").trim(),
               phone=request.getParameter("phone").trim(),
           message=request.getParameter("message");
           
           String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=MakeFriend";
           if(logname==null)
           logname="";
           if(password==null)
           password="";
           
           boolean isLD=true;
           
           for(int i=0;i<logname.length();i++) {
            char c=logname.charAt(i);
            if(!((c<='z'&&c>='a')||(c<='Z'&&c>='A')||(c<='9'&&c>='0')))
            isLD=false;
           
           
              }
           boolean boo=logname.length()>0&&password.length()>0&&isLD;
           String backNews="";
           try{
           
            logname=handleString(logname);
            password=handleString(password);
            phone=handleString(phone);
            email=handleString(email);
            message=handleString(message);
           
            String pic="public.jpg";
            
            String insertRecord="('"+logname+"','"+password+"','"+phone+"','"+email+"','"+message+"','"+pic+"')";
            con=DriverManager.getConnection(uri,"sa","891128");
            
            String insertCondition="INSERT INTO member VALUES"+insertRecord;
            
            sql=con.createStatement();
            
            if(boo)
            {
             int m=sql.executeUpdate(insertCondition);
            
             if(m!=0)
             {
             backNews="注册成功";
             reg.setBackNews(backNews);
                 reg.setLogname(logname);
             reg.setPassword(password);
             reg.setPhone(phone);
             reg.setEmail(email);
             reg.setMessage(message);
             }
            }
            else{
           
              backNews="信息填写不完整或者名字中有非法字符";
              reg.setBackNews(backNews);
              
                }
            con.close();
           
         }
           
           
       catch(SQLException exp){
        backNews="该会员名已被使用,请你更换名字"+exp;
        reg.setBackNews(backNews);
        }    
        //转发
       RequestDispatcher dispatcher=request.getRequestDispatcher("showRegisterMess.jsp");
       dispatcher.forward(request,response);        
    }


    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
    {
     this.doPost(request,response);
    }
    }
      

  4.   

    SQLServer的TCP/IP设置了没
    telnet localhost 1433试试,如果失败了按下面的配置下
    打开 /Microsoft SQL Server 2005/配置工具/目录下的SQL Server Configuration Manager,选择mssqlserver协议, 然后右边窗口有个tcp/ip协议,设置ip/all默认端口为1433,然后启动它,重启sqlserver服务。