jsp代码:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.Login" %>
<%!
public String codeString(String s)
{ String str=s;
try{ byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
%>
<html>
<body bgcolor="#3333FF"><font size="1">
<%@ include file="head.txt" %>
<font size="1">
<p>输入用户名和密码:
<% String str=response.encodeURL("login.jsp"); %>
<form action="<%=str%>" method="post">
<br>登录名称<input type=text name="logname">
<br>输入密码<input type=password name="password">
<br><input type=submit name="g" value="提交">
</form>
<jsp:useBean id="login" class="tom.jiafei.Login" scope="session" >
</jsp:useBean><% String message="",
logname="",
password="";
if(!(session.isNew()))
{ logname=request.getParameter("logname");
if(logname==null)
{ logname="";
}
logname=codeString(logname);
password=request.getParameter("password");
if(password==null)
{ password="";
}
password=codeString(password);
}
%>
<% if(!(logname.equals("")))
{
%>
<jsp:setProperty name="login" property="logname" value="<%=logname%>" />
<jsp:setProperty name="login" property="password" value="<%=password%>" />
<%
message=login.getMessage();
if(message==null)
{ message="";
}
}
%>
<%
if(!(session.isNew()))
{ if(message.equals("ok"))
{ String meb=response.encodeURL("showMember.jsp");
response.sendRedirect(meb);
}
else
{ out.print(message);
}
}
%>
</body>
</html>javabean代码:
package tom.jiafei;
import java.sql.*;
public class Login
{ String logname,
password,
success="false",
message="";
Connection con;
Statement sql;
ResultSet rs;
public Login()
{
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e){}
}
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 String getSuccess()
{ return success;
} public String getMessage()
{ try
{
con=DriverManager.getConnection("jdbc:odbc:friend","sa","");
sql=con.createStatement();
String condition="SELECT * FROM member WHERE logname="+"'"+logname+"'";
rs=sql.executeQuery(condition);
int rowcount=0;
String ps=null;
while(rs.next())
{ rowcount++;
logname=rs.getString("logname");
ps=rs.getString("password");
}
if ((rowcount==1)&&(password.equals(ps)))
{ message="ok";
success="ok";
}
else
{ message="输入的用户名或密码错误";
success="false";
}
con.close();
return message;
}
catch (SQLException e)
{ message="输入的用户名或密码错误";
success="false";
return message;
}
}}
访问页面不报错,但每次用已经注册的号(注册页面调试正常可以写数据进数据库)登录底下都显示:输入的用户名或密码错误
我不认为是数据库权限问题,因为我写的另个页面可以读出数据。
请高手看看。
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.Login" %>
<%!
public String codeString(String s)
{ String str=s;
try{ byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
%>
<html>
<body bgcolor="#3333FF"><font size="1">
<%@ include file="head.txt" %>
<font size="1">
<p>输入用户名和密码:
<% String str=response.encodeURL("login.jsp"); %>
<form action="<%=str%>" method="post">
<br>登录名称<input type=text name="logname">
<br>输入密码<input type=password name="password">
<br><input type=submit name="g" value="提交">
</form>
<jsp:useBean id="login" class="tom.jiafei.Login" scope="session" >
</jsp:useBean><% String message="",
logname="",
password="";
if(!(session.isNew()))
{ logname=request.getParameter("logname");
if(logname==null)
{ logname="";
}
logname=codeString(logname);
password=request.getParameter("password");
if(password==null)
{ password="";
}
password=codeString(password);
}
%>
<% if(!(logname.equals("")))
{
%>
<jsp:setProperty name="login" property="logname" value="<%=logname%>" />
<jsp:setProperty name="login" property="password" value="<%=password%>" />
<%
message=login.getMessage();
if(message==null)
{ message="";
}
}
%>
<%
if(!(session.isNew()))
{ if(message.equals("ok"))
{ String meb=response.encodeURL("showMember.jsp");
response.sendRedirect(meb);
}
else
{ out.print(message);
}
}
%>
</body>
</html>javabean代码:
package tom.jiafei;
import java.sql.*;
public class Login
{ String logname,
password,
success="false",
message="";
Connection con;
Statement sql;
ResultSet rs;
public Login()
{
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e){}
}
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 String getSuccess()
{ return success;
} public String getMessage()
{ try
{
con=DriverManager.getConnection("jdbc:odbc:friend","sa","");
sql=con.createStatement();
String condition="SELECT * FROM member WHERE logname="+"'"+logname+"'";
rs=sql.executeQuery(condition);
int rowcount=0;
String ps=null;
while(rs.next())
{ rowcount++;
logname=rs.getString("logname");
ps=rs.getString("password");
}
if ((rowcount==1)&&(password.equals(ps)))
{ message="ok";
success="ok";
}
else
{ message="输入的用户名或密码错误";
success="false";
}
con.close();
return message;
}
catch (SQLException e)
{ message="输入的用户名或密码错误";
success="false";
return message;
}
}}
访问页面不报错,但每次用已经注册的号(注册页面调试正常可以写数据进数据库)登录底下都显示:输入的用户名或密码错误
我不认为是数据库权限问题,因为我写的另个页面可以读出数据。
请高手看看。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货