首先声明我没有使用所谓的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.
出现错误: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.
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;
}
}
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);
}
}
telnet localhost 1433试试,如果失败了按下面的配置下
打开 /Microsoft SQL Server 2005/配置工具/目录下的SQL Server Configuration Manager,选择mssqlserver协议, 然后右边窗口有个tcp/ip协议,设置ip/all默认端口为1433,然后启动它,重启sqlserver服务。