JSP连接数据库问题

lv2165090 2010-05-13 04:48:33
我写了个简单用户登录 但是不知道为什么 就是不进入数据库查询抛出数据库异常 比如我输入admin 密码 123456
下面的代码执行完是这样的
系统产生的认证码为: 3149
您输入的认证码为: 3149
验证码输入相同,认证成功!

您输入的用户名为: admin
密码为: 123456
SQL异常!true (为什么会出现这个 而不是登录成功 或失败?)
<%@ page contentType="text/html; [code=HTML]<%@ page contentType="text/html; charset=gb2312"  language="java" errorPage=""%>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>认证码验证页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<%
String rand = (String) session.getAttribute("rand");
String input =(String) session.getAttribute("input");
String user_name= (String) session.getAttribute("user_name");
String pass_word= (String) session.getAttribute("pass_word");
%>
系统产生的认证码为:
<%= rand %><br>
您输入的认证码为:
<%= input %><br>
<font color=green>验证码输入相同,认证成功!</font><br>
<br>
您输入的用户名为:
<%= session.getAttribute("user_name") %><br>
密码为:
<%= session.getAttribute("pass_word") %><br>

<%
Connection con;
Statement sql;
ResultSet rs;
boolean s=true;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
;
}
catch(ClassNotFoundException e)
{ }
try{
con=DriverManager.getConnection("jdbc:odbc:biyeseji","","");
sql=con.createStatement();
String condition="select * from UserInfo where UserName='"+user_name+"'and PassWord='"+pass_word+"'";
rs=sql.executeQuery(condition);

if (rs.next())
{
out.print("登陆成功");

} else
{
out.print("登陆失败,用户名或密码错");
}
}
catch(SQLException e1)
{
out.print("SQL异常!");
}

%>
</body>
</html>
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mars_Ma_OK 2010-05-13
  • 打赏
  • 举报
回复
更正更正: out.print(""); 不是标签来的..嘿嘿,不要误导你了.我初看到你要显示在jsp,肯定是要用到标签,所以,才会误以为是标签了..sorry..
Mars_Ma_OK 2010-05-13
  • 打赏
  • 举报
回复
更正更正: out.print(""); 不是标签来的..嘿嘿,不要误导你了.我初看到你要显示在jsp,肯定是要用到标签,所以,才会误以为是标签了..sorry..
lv2165090 2010-05-13
  • 打赏
  • 举报
回复
问题解决了 是我自己数据源设置问题 谢谢 大家了! 楼上的兄弟还帮改了代码 分就给你了!
sunnylei258 2010-05-13
  • 打赏
  • 举报
回复
哇 我们还没学到这里的哦
xxy8100 2010-05-13
  • 打赏
  • 举报
回复
请问一下四楼的同志上面什么地方说明out.print是标签,为什么要放到外面

请解答
Mars_Ma_OK 2010-05-13
  • 打赏
  • 举报
回复
out.print("登陆成功");

你这个是作为一个jsp标签来用.忘记了把它放到<%%> 外面了...

你可以改成

<%@ page contentType="text/html; [code=HTML]<%@ page contentType="text/html; charset=gb2312" language="java" errorPage=""%>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>认证码验证页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<%
String rand = (String) session.getAttribute("rand");
String input =(String) session.getAttribute("input");
String user_name= (String) session.getAttribute("user_name");
String pass_word= (String) session.getAttribute("pass_word");
%>
系统产生的认证码为:
<%= rand %><br>
您输入的认证码为:
<%= input %><br>
<font color=green>验证码输入相同,认证成功!</font><br>
<br>
您输入的用户名为:
<%= session.getAttribute("user_name") %><br>
密码为:
<%= session.getAttribute("pass_word") %><br>

<%
Connection con;
Statement sql;
ResultSet rs;
boolean s=true;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
;
}
catch(ClassNotFoundException e)
{ }
try{
con=DriverManager.getConnection("jdbc:odbc:biyeseji","","");
sql=con.createStatement();
String condition="select * from UserInfo where UserName='"+user_name+"'and PassWord='"+pass_word+"'";
rs=sql.executeQuery(condition);

if (rs.next())
{%> out.print("登陆成功");

<%} else { %>
out.print("登陆失败,用户名或密码错");
<%}
}
catch(SQLException e1)
{%>
out.print("SQL异常!");
<%}

%>
</body>
</html>

soli11722984 2010-05-13
  • 打赏
  • 举报
回复
怎么不把异常都输出呢

e.printStackTrace();加上去,看看报啥错误
lv2165090 2010-05-13
  • 打赏
  • 举报
回复
第一个Try里多了个分号 改正 错误依旧
crazylaa 2010-05-13
  • 打赏
  • 举报
回复
e+"'and

那个and和前面的‘之间加个空格试试

81,094

社区成员

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

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