用html作为登陆界面,再转到数据库查看名和密码正确不,再在jsp获取数据库名字,显示出来,现在jsp却显示n

用html作为登陆页面,点击登陆之后转去连接数据库的conn.jsp,然后在获取数据库里面的用户名,再在jsp里面显示出来,但是现在jsp显示出来名字是null,我查过代码,数据库里面的那个用户名的都是一致的,为什么这样的呢?,请高手给出解决方法,怎样才能那个jsp显示从access这个数据库里面显示出名字。谢谢~~~~
代码如下:
<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*" errorPage="" %>
<%@ include file="conn.jsp"%>
<%
String condition="select * from manage";
ResultSet rs=sql.executeQuery(condition);
rs.next();
String username=rs.getString(1);
%>
<html>
<head>
<title>应用Dreamweaver开发JSP程序</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="CSS/style.css" rel="stylesheet">
</head>
<body background="Images/bg.gif">
<tr>
<td> </td>
<td height="24" align="center">用户名 <%=username %></td>
<td> </td>
</tr>
<%
con.close();
}
catch(SQLException e1)
{
out.print("SQL异常!");
}
%>
</body>
</html>
上面的图片就是我点击登陆之后转到检查名字是不是正确的那段代码
2楼的,我用的是tomcat来查看自己的代码的,不是用lomboz eclipse来查看的,所以看不到控制台
3楼的,我是新手,基本上没有写过jsp的代码,所以不是很懂这些不良习惯,谢谢你指出这些不良习惯,但是想问一下,我这个输出null的名字该怎么解决?
4楼的,他写入的是用户的所有信息,那假如我想只要压得用户名信息应该怎样做呢?
还有,我试过把数据库里面的id这一个列删除,这样的话,admin这一个账号能登陆,而且还能输出用户名,但是其他在数据库里面的用户和密码一律是用户名和密码错误。

可以把你的SQL语句放在数据库里运行看看能不能查出来结果。
如果没问题就检查一下字段定位是否正确。
不懂JSP
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-16
你只把连接数据库的代码全写在一个jsp页面里,看能不能取到数据,
或者当你得到String username后直接System.out.println(username)看看在服务器的控制台上有没有输出username呢

你图片里的sesson.setAttribute("username",username)//你好像第二个username多了引号
null的话说明你的username根本就没有得到想要的值,也就是rs.getString(1)没得到相应的值,就返回空了
你试试
<%while(rs.hasNext())
{
rs.next();
%>
<p><%=rs.getString("username")%></p>//类似这样的一个个输出看有没有
<%}%>
第2个回答  2010-12-16
<%
String condition="select * from manage";
ResultSet rs=sql.executeQuery(condition);
rs.next();
String username=rs.getString(1);
%>
你这样得到的是一个用户的对象(该用户的所有信息),而不是用户的用户名
第3个回答  2010-12-16
SQL中用*是很不好的习惯
getString(1)也是不好的习惯 应该写明字段名称比如getString(“username ”) 要不然很难说对应的是哪个字段
不做hasnext判断就用next数据库没有数据时会导致异常
rs和con的关闭应该写在finally中 只把连接数据库的代码全写在一个jsp页面里,看能不能取到数据,
或者当你得到String username后直接System.out.println(username)看看在服务器的控制台上有没有输出username呢
<%
String condition="select * from manage";
ResultSet rs=sql.executeQuery(condition);
rs.next();
String username=rs.getString(1);
%>
你这样得到的是一个用户的对象(该用户的所有信息),而不是用户的用户名
第4个回答  2010-12-16
你有几个问题 年轻人

SQL中用*是很不好的习惯
getString(1)也是不好的习惯 应该写明字段名称比如getString(“username ”) 要不然很难说对应的是哪个字段
不做hasnext判断就用next数据库没有数据时会导致异常
rs和con的关闭应该写在finally中
第5个回答  2010-12-18
ResultSet rs=sql.executeQuery(condition);这一行如何数据库中有很多项,都会将查出来
rs.next();到了第二条记录
String username=rs.getString(1);而这得到第二条的getString中应用"username"正如二楼所说
四楼中的说法可行