jsp中怪怪的问题,高手必看
<% String sql="select 超级用户名,超级用户密码 from 超级用户 where 超级用户名= ?"; %>
<% String username=new String(request.getParameter("username").getBytes("ISO-8859-1"),"GBK"); %>
<% String password=new String(request.getParameter("password").getBytes("ISO-8859-1"),"GBK"); %>
<% Connection conn=ConManager.getConnection("sql97");%>注释这里用了连接池,只是获得Connection 对象
<% PreparedStatement pstmt=conn.prepareStatement(sql); %>
<% pstmt.setString(1,username); %>
<% if(rs.next())
{ out.println(username);//调试语句
out.println(password);//调试语句
out.println(rs.getString("超级用户名"));//调试语句
if(!(rs.getString(2).equals(password)))
{
out.println("wrong");//调试语句
}
else
{
out.println("mimadui");//调试语句
}
}
else
{
out.println("<table align='center'>");
out.println("<tr><td>对不起,没有这个用户!"+"<a href='javascript:history.back();'>返回</a></td></tr>");
out.println("</table>");
}
%>
问题就在if(!(rs.getString(2).equals(password)))
当我调试时rs.getString("超级用户密码")报错,no data indatabase
我调试的原因:
如果用户名是英文则没有问题
但是用户名是中文且密码正确时却跳到 out.println("wrong");//调试语句
为什么英文就没这样的问题?
在先等。急急
问题点数:0、回复次数:4Top
1 楼aku0708(怀念奶茶)回复于 2003-12-01 10:09:53 得分 0
你把结果集查出来再中文转换一下试试Top
2 楼luckygjl(gg2003)回复于 2003-12-01 10:12:03 得分 0
每做一次pstmt.getString(1); 记录指针就向下移动一次,所以建议你对pstmt.getString(1)按数据库子段的顺序只取一次,放在一个变量里,不要反复去调用pstmt.getString(1),否则会出错Top
3 楼phili1999(大鸟)回复于 2003-12-01 10:26:14 得分 0
楼上的正确,还有我一直很反对使用中文字段名,建议不要使用Top
4 楼gzsxy8013(more)回复于 2003-12-01 10:58:14 得分 0
楼上的我试过了
还是不行?我该怎么版?Top




