请教各位高手一个简单的JSP+JavaBean做用户登录验证的问题

wangruijie2000 2004-01-15 10:25:12
连接Access数据库,检测用户名个密码的合法性

这是Userlogin类

package EOffice;
import java.sql.*;
import java.io.*;
public class UserLogin
{
private ResultSet Rs;
private String UserName;
private String Password;
DateBaseConnection dc=new DateBaseConnection();
public void UserLogin()
{
dc.CreateCon();
}
public boolean CheckUser(String iUser,String iPwd)
{
try
{
Rs=dc.excuteQuery("select * from Users where iUserName ='"+iUser+"'");
int RowCount=Rs.getRow();
if (RowCount!=0)
{
Rs=dc.excuteQuery("select * from Users where iPassWord ='"+iPwd+"'");
RowCount=Rs.getRow();
System.out.println(RowCount);
if(RowCount!=0)
return true;
else
return false;
}
else
return false;
}
catch(Exception e)
{
return false;
}
}
}

这是DateBaseConnection类

package EOffice;
import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class DateBaseConnection
{
private String strCon; //数据库连接字符
private String strSql;//SQL字符串
private Connection sqlCon=null;//连接对象
private Statement sqlStmt=null;//SQL语句对象
private ResultSet sqlRst=null;//结果集对象
//创建连接
public void CreateCon()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
strCon="jdbc:odbc:EOffice";
sqlCon=DriverManager.getConnection(strCon);
}
catch(java.lang.ClassNotFoundException e)
{
//这样写是为了方便调试程序,出错打印就知道在什么地方出错了
System.out.println(e.getMessage());
}
catch(java.sql.SQLException e)
{
System.out.println(e.getMessage());
}
}
//关闭连接
public void CloseCon()
{
try
{
if(sqlRst != null)
sqlRst.close();
if(sqlStmt != null)
sqlStmt.close();
if(sqlCon != null)
sqlCon.close();
}
catch(java.sql.SQLException e)
{
System.err.println(e.getMessage());
}
sqlRst=null;
sqlStmt=null;
sqlCon=null;
}
//查询记录集
public ResultSet excuteQuery(String sql)
{
sqlRst=null;
try
{
if(sqlCon==null)
CreateCon();
if(sqlCon!=null)
{
sqlStmt=sqlCon.createStatement();
sqlRst=sqlStmt.executeQuery(sql);
}
}
catch(Exception e)
{
System.out.println(e);
}
return sqlRst;
}
//toChinese方法用于将一个字符串进行中文处理
//否则将会是???这样的字符串
public static String toChinese(String strvalue)
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}
}

这是Display.jsp

<%@ page language="java" %>


<%! boolean isnotlogin=false; %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>display</title>
</head>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
%>

<jsp:useBean id="UserLogin" scope="page" class="EOffice.UserLogin" />
<jsp:setProperty name="UserLogin" property="*" />
</jsp:useBean>
<%
isnotlogin=UserLogin.CheckUser(username,password);
%>



<body>

<%
if(!isnotlogin)
{
%> Wrong username and password!
<% return;
}
else
{

%> Welcome "one" to visit this page!
<%
}

%>

</body>
</html>


当然还有一个login.htm有个form,两个文本框分别是username和password

建立ODBC 叫EOffice,数据库里就一个表叫Users,字段为iUsername和iPassword,可是建立起Tomcat后运行起来,用户名和密码都对,可返回的记录集的getRow()总是0,希望高手指点
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xueqs 2004-01-15
  • 打赏
  • 举报
回复
同上
wangruijie2000 2004-01-15
  • 打赏
  • 举报
回复
感谢楼上!!!!!!!!!!!
zhwquan 2004-01-15
  • 打赏
  • 举报
回复
同意楼上
ddadoris 2004-01-15
  • 打赏
  • 举报
回复
int RowCount=Rs.getRow();
if (RowCount!=0)
这两行的毛病,删掉并
应该改成if (Rs.next()){

}
如果库里有数据,肯定没有问题。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧