我写了一个数据库连接的JAVABEAN,和一个登陆页面的JSP但是登陆有问题,请大家帮我看看。
javabean:
package myclass;
import java.net.SocketException;
import java.sql.*;
import java.sql.*;
public class ConnectBean {
private Connection conn=null;
private Statement stmt=null;
ResultSet rst=null;
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=example1";
String user="sa";
String password="ms";
public ConnectBean ()
{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
public ResultSet executeQuery(String sql){
try{
Connection conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rst=executeQuery(sql);
}catch(SQLException e){
System.out.println("the error:"+e.toString());
}
return rst;
}
public void excuteUpdate(String sql){
try{
Connection conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rst=stmt.executeQuery(sql);
}catch(SQLException e){
System.out.println("sqlexception error:"+e.toString());
}
}
public void closeStmt(){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public void closeConn(){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public void closeRst(){
try{
rst.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
JSP:
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*,java.util.*"%>
<jsp:useBean id="con" scope="page" class="myclass.ConnectBean" />
<html>
<head>
<script language="javascript">
function checkform(rst){
var id1=document.loginform.loginid.value;
var psw1=document.loginform.loginpsw.value;
if(id1=="")
{
alert("the id is not right please input it again");
ducument.loginform.loginid.focus();
return false;
}
else if(psw1=="")
{
alert("the psws is not right please input it again");
ducument.loginform.loginpsw.focus();
return false;
}
else if(rst){
alert("ok");
document.loginform.action="example3.jsp";
document.loginform.submit();
return true;
}
}
</script>
</head>
<body>
<%
int loginid=Integer.parseInt(request.getParameter("loginid"));
String loginpsw=request.getParameter("loginpsw");
String sql="SELECT * FROM LOGINTABLE WHERE ID='"+loginid+"'AND PSW='"+loginpsw+"'";
%>
<form name=loginform>
<p align=center>THE SUPERMARKET MANGEMENT SYSTEM
<p align=center> designer: Li Guojiang
<p align=center>please input the login ID:
<input type=text name="loginid" value="" maxlength=6 size=6>
<p align=center>please input the login password:
<input type=text name="loginpsw" value="" maxlength=8 size=8>
<P align=center>please choose the role:
<select name=menu>
<option value="customer">customer
<option value="saleman">saleman
<option value="buy">buy
<option value="manger">manger
</select>
<p align=center>
<input type=submit name=submitbutton value="submit" onClick="checkform(<%=con.executeQuery(sql).toString()%>)">
<input type=reset name=resetbutton value="reset">
</body>
</html>
运行http://localhost:8080/examples/login.jsp后
TOMCAT4。1启动的DOS窗口里面提示:
the error:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Erro
r establishing socket.
说明连接出错了。 是端口有问题, 肯定不是 因为我有写了一个测试的JSP
如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<HTML>
<title>jsp链接sql server例子</title>
<BODY>
<%
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=example1";
String user="sa";
String password="ms";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from logintable");
while (rs.next())
{
%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%
}
%>
<%out.print("数据库操作成功,恭喜你");%>
<%
rs.close();
stmt.close();
conn.close();
%>
运行http://localhost:8080/examples/test1.jsp
结果正确。
我就不明白了,为什么我的BEAN里面连接数据库会出错。