我尝试着自己解决这个问题好几天了,实在解决不了,实在崩溃了,希望高手帮帮忙我的sql server2000打了sp4补丁,版本号2039.。。
我已经把jdbc的三个驱动放到指定地方了,包括放到jdk\lib,tomcat\lib,
我的环境变量是 CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\ext\mssqlserver.jar;%JAVA_HOME%\jre\lib\ext\msbase.jar;%JAVA_HOME%\jre\lib\ext\msutil.jar;%JAVA_HOME%\jre\lib\ext\sqljdbc.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\servlet-api.jar;CATALINA_HOME\lib\servlet-api.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;
PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar; (总之哪怕重复,该放的我都放了)我的tomcat 的版本是6.0
我的源代码是
member.jsp <%@ page import="java.sql.*"%>
<%@ page errorPage="MemberErrorPage.jsp" %>
<jsp:useBean id="Member" scope="page" class="jsp.beans.MemberBean"/>
<jsp:useBean id="MemberData" scope="request" class="jsp.beans.MemberDataBean"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>MemberCard Login</title>
<style type="tect/css">
body{
font-family:tahoma,helvetica,arial,sans-serif;
}
table,tr,td{
font-size:9px;
boder:3px groove;
padding:5px;
background-color:#dddddd;
}
</style>
</head><body>
<jsp:setProperty name="Member" property="*"/>
<% if(Member.getMemberID()==null||Member.getNickname()==null||Member.getDept()==null||Member.getMobile()==null||Member.getCredit()==null){
%>
<form method="post"action="MemberCardLogin.jsp">
<p>Enter your information to register in our database.</p>
<table>
<tr>
<td>MemberID</td>
<td>
<input type="text"name="MemberID"/>
</td>
</tr>
<tr>
<td>Nickname</td>
<td>
<input type="text"name="Nickname"/>
</td>
</tr>
<tr>
<td>Department</td>
<td>
<input type="text"name="Dept"/>
</td>
</tr>
<tr>
<td>Mobile</td>
<td>
<input type="text"name="Mobile"/>
</td>
</tr>
<tr>
<td>QQ</td>
<td>
<input type="text"name="QQ"/>
</td>
</tr>
<tr>
<td>Email</td>
<td>
<input type="text"name="Email"/>
</td>
</tr>
<tr>
<td>Credit</td>
<td>
<input type="text"name="Credit"/>
</td>
</tr>
<td colspan="2">
<input type="submit"value="Submit"/>
</td>
</tr>
</table>
</form>
<% }
else{
MemberData.addMember(Member);
%>
<jsp:forward page="MemberView.jsp"/>
<%
} %>
</body>
</html>
memberBean.class
package jsp.beans;
public class MemberBean{
private String MemberID,Nickname,Dept,Credit,Mobile,QQ,Email;
public void setMemberID(String name){
MemberID=name;
}
public String getMemberID(){
return MemberID;
}
public void setNickname(String name){
Nickname=name;
}
public String getNickname(){
return Nickname;
}
public void setDept(String name){
Dept=name;
}
public String getDept(){
return Dept;
}
public void setCredit(String name){
Credit=name;
}
public String getCredit(){
return Credit;
}
public void setMobile(String name){
Mobile=name;
}
public String getMobile(){
return Mobile;
}
public void setQQ(String name){
QQ=name;
}
public String getQQ(){
return QQ;
}
public void setEmail(String name){
Email=name;
}
public String getEmail(){
return Email;
}
}memberDataBean.class
package jsp.beans;
import java.io.*;
import java.sql.*;
import java.util.*;
public class MemberDataBean{
private Connection connection;
private Statement statement;
public MemberDataBean()throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://1ocalhost:1433;DatabaseName=BookStore";
connection=DriverManager.getConnection(url,"sa","sa");
statement=connection.createStatement();
}
public List getMemberList() throws SQLException{
List MemberList=new ArrayList();
ResultSet results=statement.executeQuery("Select * from memberCard");
while(results.next()){
MemberBean member=new MemberBean();
member.setMemberID(results.getString(1));
member.setNickname(results.getString(4));
member.setDept(results.getString(2));
member.setMobile(results.getString(3));
member.setQQ(results.getString(5));
member.setEmail(results.getString(6));
member.setCredit(results.getString(7));
MemberList.add(member);
}
return MemberList;
}
public void addMember(MemberBean member)throws SQLException{
statement.executeUpdate("insert into MemberCard"+" values('"+member.getMemberID()+"','"+member.getDept()+"','"
+member.getMobile()+"','"+member.getCredit()+"','"+member.getNickname()+"','"+member.getQQ()+"','"+member.getEmail()+"')");
}
protected void finalize(){
try{
statement.close();
connection.close();
}
catch(SQLException sqlException){
sqlException.printStackTrace();
}
}
}
总是报错,javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.MemberLogin_jsp._jspService(MemberLogin_jsp.java:167)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)救救我吧,我已经崩溃了好几天了
我已经把jdbc的三个驱动放到指定地方了,包括放到jdk\lib,tomcat\lib,
我的环境变量是 CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\ext\mssqlserver.jar;%JAVA_HOME%\jre\lib\ext\msbase.jar;%JAVA_HOME%\jre\lib\ext\msutil.jar;%JAVA_HOME%\jre\lib\ext\sqljdbc.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\servlet-api.jar;CATALINA_HOME\lib\servlet-api.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;
PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar; (总之哪怕重复,该放的我都放了)我的tomcat 的版本是6.0
我的源代码是
member.jsp <%@ page import="java.sql.*"%>
<%@ page errorPage="MemberErrorPage.jsp" %>
<jsp:useBean id="Member" scope="page" class="jsp.beans.MemberBean"/>
<jsp:useBean id="MemberData" scope="request" class="jsp.beans.MemberDataBean"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>MemberCard Login</title>
<style type="tect/css">
body{
font-family:tahoma,helvetica,arial,sans-serif;
}
table,tr,td{
font-size:9px;
boder:3px groove;
padding:5px;
background-color:#dddddd;
}
</style>
</head><body>
<jsp:setProperty name="Member" property="*"/>
<% if(Member.getMemberID()==null||Member.getNickname()==null||Member.getDept()==null||Member.getMobile()==null||Member.getCredit()==null){
%>
<form method="post"action="MemberCardLogin.jsp">
<p>Enter your information to register in our database.</p>
<table>
<tr>
<td>MemberID</td>
<td>
<input type="text"name="MemberID"/>
</td>
</tr>
<tr>
<td>Nickname</td>
<td>
<input type="text"name="Nickname"/>
</td>
</tr>
<tr>
<td>Department</td>
<td>
<input type="text"name="Dept"/>
</td>
</tr>
<tr>
<td>Mobile</td>
<td>
<input type="text"name="Mobile"/>
</td>
</tr>
<tr>
<td>QQ</td>
<td>
<input type="text"name="QQ"/>
</td>
</tr>
<tr>
<td>Email</td>
<td>
<input type="text"name="Email"/>
</td>
</tr>
<tr>
<td>Credit</td>
<td>
<input type="text"name="Credit"/>
</td>
</tr>
<td colspan="2">
<input type="submit"value="Submit"/>
</td>
</tr>
</table>
</form>
<% }
else{
MemberData.addMember(Member);
%>
<jsp:forward page="MemberView.jsp"/>
<%
} %>
</body>
</html>
memberBean.class
package jsp.beans;
public class MemberBean{
private String MemberID,Nickname,Dept,Credit,Mobile,QQ,Email;
public void setMemberID(String name){
MemberID=name;
}
public String getMemberID(){
return MemberID;
}
public void setNickname(String name){
Nickname=name;
}
public String getNickname(){
return Nickname;
}
public void setDept(String name){
Dept=name;
}
public String getDept(){
return Dept;
}
public void setCredit(String name){
Credit=name;
}
public String getCredit(){
return Credit;
}
public void setMobile(String name){
Mobile=name;
}
public String getMobile(){
return Mobile;
}
public void setQQ(String name){
QQ=name;
}
public String getQQ(){
return QQ;
}
public void setEmail(String name){
Email=name;
}
public String getEmail(){
return Email;
}
}memberDataBean.class
package jsp.beans;
import java.io.*;
import java.sql.*;
import java.util.*;
public class MemberDataBean{
private Connection connection;
private Statement statement;
public MemberDataBean()throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://1ocalhost:1433;DatabaseName=BookStore";
connection=DriverManager.getConnection(url,"sa","sa");
statement=connection.createStatement();
}
public List getMemberList() throws SQLException{
List MemberList=new ArrayList();
ResultSet results=statement.executeQuery("Select * from memberCard");
while(results.next()){
MemberBean member=new MemberBean();
member.setMemberID(results.getString(1));
member.setNickname(results.getString(4));
member.setDept(results.getString(2));
member.setMobile(results.getString(3));
member.setQQ(results.getString(5));
member.setEmail(results.getString(6));
member.setCredit(results.getString(7));
MemberList.add(member);
}
return MemberList;
}
public void addMember(MemberBean member)throws SQLException{
statement.executeUpdate("insert into MemberCard"+" values('"+member.getMemberID()+"','"+member.getDept()+"','"
+member.getMobile()+"','"+member.getCredit()+"','"+member.getNickname()+"','"+member.getQQ()+"','"+member.getEmail()+"')");
}
protected void finalize(){
try{
statement.close();
connection.close();
}
catch(SQLException sqlException){
sqlException.printStackTrace();
}
}
}
总是报错,javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.MemberLogin_jsp._jspService(MemberLogin_jsp.java:167)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)救救我吧,我已经崩溃了好几天了
用 CMD 命令NETSTAT查1433(这是默认的端口,可能被占用,你可以重新设一个新的端口)的端口可是居然没有没有打开,先看看你的服务器有没有打开,如果都大开了那就说明你没有装SQL的sp3或sp4的补丁. 还有一个方法看你是不是要打补丁,那就是看看你的版本号:
可以用如下的方式查看MSSQL的版本:
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看MSSQL的详细版本号
如果 是 8.00.194 就是还没打补丁
8.00.760 就是SP3
8.00.2039 就是SP4
如果你的版本号是对的,但NETSTAT查1433没有,那可能你的1433端口被占了,换一个端口应该就可以了.
换端口的方法是:1. 打开企业管理器,依次在控制台根目录 ->Microsoft SQL Servers->SQL Server 组,列出一部分数据库服务器。
2. 右击我们要连接的数据库服务器,选择属性,在常规选项卡点击网络配置弹出新窗口。
3. 在启用的协议区域我们选择 TCP/IP ,点击属性按钮,弹出新窗口。在这个窗口有网络协议默认值设置,一般默认端口是:1433。 另有一篇网上的方法,供参考:如运行程序时出现 "Error establishing socket" 错误,则应进行如下调试:
1 检查SQL SERVER 是否允许远程访问.具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"连接"选项卡,检查"远程服务器连接"下,RPC服务是否选择.2 使用telnet IP地址 1433,系统是否提示连接出错,如系统提示出错
检查是否防火墙屏蔽了SQL SERVER 或 java IDE 的网络访问端口
如果是,关闭防火墙,重新启动SQL SERVER和java IDE,进行测试,
如果系统仍提示上述错误,尝试下列步骤3 检查SQL SERVER 端口号及是否启用了TCP/IP协议,具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400)以下的方法你每种的去试试:
#检查一下sql server的connection有没有full.#如果是认证的问题.
可到sql enterprice manager->指定server->内容->安全性.
把验证改为 SQL server 及 windows.#点选属性检查一下port是否正确.#执行%MSSQL_HOME%\80\Tools\Binn\SVRNETCN.exe
把TCP/IP启用.#关掉防火墙.#把SQL server update到sp3:
http://www.microsoft.com/sql/downloads/2000/sp3.asp经我验证,一般升级到sp3就好用了!
String url="jdbc:microsoft:sqlserver://1ocalhost:1433;DatabaseName=BookStore";
你不会连错数据库吧,应该不会.呵呵,建议LZ设断点调试下,一般这样的问题,很快就解决的.
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;databasename=BookStore";
//pubs为你的数据库的 String user="sa";
String password="sa";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from memberCard";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getInt(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
您的第三个字段内容为:<%=rs.getString(3)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
但用了javabean还是报错 error socket
我的错误是从网上面粘了一段代码而这段代码是url="jdbc:microsoft:sqlserver://1ocalhost:1433;DatabaseName=BookStore";大家仔细看看是错在哪我找了很长时间才发现 是localhost 再仔细看看错在哪,那上面是 1 而不是 l ,写出来是想告诉大家,有时候因为你的疏忽,一个微小的失误都能让你忙活半天,还有就是以后不要偷懒粘代码,至少不要轻易相信网上的代码了,最后手打一遍,也熟悉下呵呵,浪费了大家时间,实在不好意思