就是把:try { String id = lb.getName(); String pwd = lb.getPass(); String sql = "select * from member where name='"+id+"' and pass='"+pwd+"'"; Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql); if(rs.next()) { return true; } else { return false; } }改为: try { String id = lb.getName(); String pwd = lb.getPass(); String sql = "select * from member where name='"+id+"' and pass='"+pwd+"'"; System.out.println(sql);//将sql字段输出到控制台 Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql); if(rs.next()) { return true; } else { return false; } }最后,你到Tomcat下看看打印出来是什么,并把它贴出来看看
打印出来是下面这些:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis hing socket. at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source ) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou rce) at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S ource) at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source) at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at com.l1sql.<init>(l1sql.java:37) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct orAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC onstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at java.lang.Class.newInstance0(Class.java:308) at java.lang.Class.newInstance(Class.java:261) at java.beans.Beans.instantiate(Beans.java:204) at java.beans.Beans.instantiate(Beans.java:48) at org.apache.jsp.l1_jsp._jspService(l1_jsp.java:66) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper .java:210) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2 95) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex t.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav a:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex t.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav a:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java: 2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex t.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche rValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex t.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j ava:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex t.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav a:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex t.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav a:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:19 9) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :833) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce ssConnection(Http11Protocol.java:711) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java :584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP ool.java:687) at java.lang.Thread.run(Thread.java:534)
{
ex.printStackTrace(System.err);
}
然后把输出结果贴出来看看。另外,这个表的名字是“login”吗?
to:EchoEverything(小E) 这个打印到控制台是什么意思.
表名和数据库名都是login,这个不要紧吧.
登陆页面:<html>
<head><title>登陆</title></head>
<body>
<table align="center" bgcolor="aabbcc">
<form action="l1.jsp" method="post" name="form1">
<tr><td>姓名:</td><td><input type="text" name="name"></td></tr>
<tr><td>密码:</td><td><input type="password" name="pass"></td></tr>
<tr>
<td></td>
<td>
<input type="button" value="提交" OnClick="submit();"><input type="reset" value="重置">
<a href="lo1.htm"><font color="red">注册</font>
</td>
</tr>
</form>
</table>
</body>
</html>
JSP页面:<%@page contentType="text/html;charset=gb2312" language="java" import="com.*"%>
<jsp:useBean id="lb1" class="com.l1bean" scope="page">
<jsp:setProperty name="lb1" property="*"/>
</jsp:useBean>
<jsp:useBean id="ls1" class="com.l1sql" scope="page"/>
<%
ls1.setLb(lb1);
if(ls1.selectdb())
{
response.sendRedirect("suss.jsp");
}
else
{
response.sendRedirect("l1.htm");
}
%>
读取提交用户名和密码的BEAN:package com;public class l1bean
{
private String name;
private String pass; public void setName(String name)
{
this.name = name;
}
public void setPass(String pass)
{
this.pass = pass;
}
public String getName()
{
return name;
}
public String getPass()
{
return pass;
}
}
查询的BEAN:package com;
import java.sql.*;public class l1sql
{
private l1bean lb;
private Connection conn; public String changstr(String temp)
{
try
{
String str = temp;
byte[] str_1 = str.getBytes("ISO8859-1");
String str_2 = new String(str_1);
return str_2;
}
catch(Exception ee)
{
return temp;
} }
public void setLb(l1bean lb)
{
this.lb = lb;
}
public l1sql()
{
String classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String servanddb = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=login";
String user = "sa";
String pwd = "pwd";
try
{
Class.forName(classforname);
conn = DriverManager.getConnection(servanddb,user,pwd);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public boolean selectdb()
{
try
{
String id = lb.getName();
String pwd = lb.getPass();
String sql = "select * from member where name='"+id+"' and pass='"+pwd+"'";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
if(rs.next())
{
return true;
}
else
{
return false;
}
}
catch(Exception ex)
{
return false;
}
}
}
放上<%=lb1.getName()%>
<%=lb1.getPass()%>
<%=ls1.selectdb()%>看看结果
JSP页面打印出: ggg 123456 false 我把catch里改成return true,提交后会跳转到suss.jsp页面,这说明数据库查询这块有问题吧.
{
ex.printStackTrace(System.err);
}
{
ex.printStackTrace(System.err);
}
没有报错????????
{
String id = lb.getName();
String pwd = lb.getPass();
String sql = "select * from member where name='"+id+"' and pass='"+pwd+"'";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
if(rs.next())
{
return true;
}
else
{
return false;
}
}改为:
try
{
String id = lb.getName();
String pwd = lb.getPass();
String sql = "select * from member where name='"+id+"' and pass='"+pwd+"'";
System.out.println(sql);//将sql字段输出到控制台
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
if(rs.next())
{
return true;
}
else
{
return false;
}
}最后,你到Tomcat下看看打印出来是什么,并把它贴出来看看
hing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.l1sql.<init>(l1sql.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at java.beans.Beans.instantiate(Beans.java:204)
at java.beans.Beans.instantiate(Beans.java:48)
at org.apache.jsp.l1_jsp._jspService(l1_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2
95)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:19
9)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:833)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:711)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:687)
at java.lang.Thread.run(Thread.java:534)
不知道是不是EDITPLUS的问题,用它写XML时常莫明其妙的出错.
TO:EchoEverything(小E) 现在这个问题解决了,是不是该讲讲安全方面的问题了,十分期盼,呵呵!!!