这个是 login.jsp<%@ page contentType="text/html;charset=GB2312" import="java.sql.*" language="java" %>
<%@ page import="bean.LinkBean" %>
<jsp:useBean id="Link" scope="page" class="bean.LinkBean"/>
<%
if(request.getParameter("memberid")!=null&&request.getParameter("memberpwd")!=null)
{
Connection conn=Link.setConnection("login");
ResultSet rs=Link.getQuery("SELECT * FORM member WHERE memberid='"+request.getParameter("memberid")+"' AND memberpwd='"+request.getParameter("menberpwd")+"'");
if(rs.next())
{
response.sendRedirect("accesspage.jsp");
}
else
out.println("密码账号不符!");
}
%>
<html>
<head>
<title>登陆!</title>
</head>
<body>
<form method="post">
<table border="0" width="898">
<tr>
<td width="890" align="left" colspan="2">
<b><font size="5">开始登陆!!!</font></b>
<hr>
</td>
</tr>
<tr>
<td width="75" align="center">
<p align="right">账号:</p>
</td>
<td width="809" align="center">
<p align="left">
<input type="text" name="memberid" size="20">
</td>
</tr>
<tr>
<td width="75" align="center">
<p align="right">密码:</p>
</td>
<td width="809" align="center">
<p align="left">
<input type="password" name="memberpwd" size="20">
<input type="submit" value="登陆" name="loginButton">
</td>
</tr>
</table>
</form>
</body>
</html>这个是JAVABEAN LinkBean.javapackage bean;
import java.sql.*;
public class LinkBean
{
private Connection conn=null;
private ResultSet rs=null;
private String dbs;
public LinkBean()
{
}
public Connection setConnection(String db)
{
dbs="jdbc:mysql://localhost:3306"+db;
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(dbs,"root","");
}
catch (Exception e)
{
System.out.println(e.toString());
}
return conn;
}
public ResultSet getQuery(String sqls)
{
try
{
Statement sta=conn.createStatement();
rs=sta.executeQuery(sqls);
}
catch(Exception e)
{
System.out.println(e.toString());
}
return rs;
}
}大家帮我看看哪里出了问题,登陆页面能进去,但输入账号和密码,登陆后就出现错误了,它说错误为
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 96: {
7: Connection conn=Link.setConnection("login");
8: ResultSet rs=Link.getQuery("SELECT * FORM member WHERE memberid='"+request.getParameter("memberid")+"' AND memberpwd='"+request.getParameter("menberpwd")+"'");
9: if(rs.next())
10: {
11: response.sendRedirect("accesspage.jsp");
12: }
数据库已建立了,到底哪里出问题了,高手帮帮忙啊。。
<%@ page import="bean.LinkBean" %>
<jsp:useBean id="Link" scope="page" class="bean.LinkBean"/>
<%
if(request.getParameter("memberid")!=null&&request.getParameter("memberpwd")!=null)
{
Connection conn=Link.setConnection("login");
ResultSet rs=Link.getQuery("SELECT * FORM member WHERE memberid='"+request.getParameter("memberid")+"' AND memberpwd='"+request.getParameter("menberpwd")+"'");
if(rs.next())
{
response.sendRedirect("accesspage.jsp");
}
else
out.println("密码账号不符!");
}
%>
<html>
<head>
<title>登陆!</title>
</head>
<body>
<form method="post">
<table border="0" width="898">
<tr>
<td width="890" align="left" colspan="2">
<b><font size="5">开始登陆!!!</font></b>
<hr>
</td>
</tr>
<tr>
<td width="75" align="center">
<p align="right">账号:</p>
</td>
<td width="809" align="center">
<p align="left">
<input type="text" name="memberid" size="20">
</td>
</tr>
<tr>
<td width="75" align="center">
<p align="right">密码:</p>
</td>
<td width="809" align="center">
<p align="left">
<input type="password" name="memberpwd" size="20">
<input type="submit" value="登陆" name="loginButton">
</td>
</tr>
</table>
</form>
</body>
</html>这个是JAVABEAN LinkBean.javapackage bean;
import java.sql.*;
public class LinkBean
{
private Connection conn=null;
private ResultSet rs=null;
private String dbs;
public LinkBean()
{
}
public Connection setConnection(String db)
{
dbs="jdbc:mysql://localhost:3306"+db;
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(dbs,"root","");
}
catch (Exception e)
{
System.out.println(e.toString());
}
return conn;
}
public ResultSet getQuery(String sqls)
{
try
{
Statement sta=conn.createStatement();
rs=sta.executeQuery(sqls);
}
catch(Exception e)
{
System.out.println(e.toString());
}
return rs;
}
}大家帮我看看哪里出了问题,登陆页面能进去,但输入账号和密码,登陆后就出现错误了,它说错误为
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 96: {
7: Connection conn=Link.setConnection("login");
8: ResultSet rs=Link.getQuery("SELECT * FORM member WHERE memberid='"+request.getParameter("memberid")+"' AND memberpwd='"+request.getParameter("menberpwd")+"'");
9: if(rs.next())
10: {
11: response.sendRedirect("accesspage.jsp");
12: }
数据库已建立了,到底哪里出问题了,高手帮帮忙啊。。
{
try
{
Statement sta=conn.createStatement();
rs=sta.executeQuery(sqls);
}
catch(Exception e)
{
System.out.println(e.toString());
}
return rs;
}
} 用下这个
public ResultSet getQuery(String sqls)
{
try
{
PreparedStatement sta=conn.prepareStatement(sqls)
rs=sta.executeQuery();
}
catch(Exception e)
{
System.out.println(e.toString());
}
return rs;
}
}
if(rs.next())
{
response.sendRedirect("accesspage.jsp");
}
else
out.println("密码账号不符!");
改为if(rs!=null&&rs.next())
{
response.sendRedirect("accesspage.jsp");
}
else
out.println("密码账号不符!");
就不出错了,但我按照数据库里输入的账号密码登陆后,都是 打印密码帐号不符!是不是我的数据库没连接上啊?还是数据库对类型有要求?例如账号是要 varchar ,而密码是要其他特定类型的吗?或者根本就是我的语句有问题啊?
改为下面是以下:dbs="jdbc:mysql://localhost:3306/"+db;实验以下
包括连接语句、驱动包是否放入等;
2.看看你执行的sql语句是否有问题。
没有数据填充ResultSet,即没有值,
建议使用
ResultSet rs=Link.getQuery("SELECT count(*) FORM member WHERE memberid='"+request.getParameter("memberid")+"' AND memberpwd='"+request.getParameter("menberpwd")+"'");
判断大于0即可
回lz的朋友,我改为如下ResultSet rs=Link.getQuery("SELECT count(*) FROM member WHERE id='"+request.getParameter("memberid")+"'AND pwd='"+request.getParameter("memberpwd")+"'");
if(rs!=null&&rs.next())
{
response.sendRedirect("accesspage.jsp");
}
else
out.println("密码账号不符!");但输入账号和密码后,无论密码错误与否都转到 accesspage.jsp (这个页面显示 “登陆成功”)。
所以我猜想,数据库已经连接成功,但由于某些语句造成只确认了数据库的账号,却没能确认密码。
到底还有什么问题啊?小弟周围没有人指点,就这点问题却搞了很久,求各位再帮我仔细看看啊!!!
这样也能连接上吗?
应该是Connection conn=Link.setConnection("/login"); 吧1.按理说应该是根本没连接上数据库,所以setConnection(String db)方法返回null,getQuery(String sqls)也返回null,所以报错。
2.改为if(rs!=null&&rs.next())后,rs!=null条件不满足,直接执行else语句,所以总是提示帐户密码不符。
3.但是怎么会改为:
ResultSet rs=Link.getQuery("SELECT count(*) FROM member WHERE id='"+request.getParameter("memberid")+"'AND pwd='"+request.getParameter("memberpwd")+"'");
if(rs!=null&&rs.next())后却总转入登陆成功页面就奇怪了。
你确定只做了这个改动吗?"login"前面是不是已经加上"/"了?楼主可以看看tomcat的记录,看看System.out.println(e.toString());有没有执行。
<p align="right">密码: </p>
</td>
<td width="809" align="center">
<p align="left">
<input type="password" name="memberpwd" size="20">
<input type="submit" value="登陆" name="loginButton">
</td>
</tr>
</table>
</form>
</body>
</html>
public boolean checkUserLogin(userBean ub)
{ boolean result = false;
try
{
String sql =
"select count(*) from person where username=? and userpassword=?";
prepar = conn.prepareStatement(sql);
prepar.setString(1, ub.getUsername());
prepar.setString(2, ub.getUserpassword());
res = prepar.executeQuery();
if (res.next())
{
if (res.getInt(1) > 0)
{
result = true;
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return result;
}
2.通过前台获取的参数查询数据库的时候出错,查一下你动态生成的sql语句.看是否有问题