JAVA连接数据库时,为什么输出的u 和p 值都是不正确?
<%
String u=request.getParameter("user");
String p=request.getParameter("userPassword");
/* if(u.equals("shunping") && p.equals("123") )
{
response.sendRedirect("wellcom.jsp?username="+u);}
else {response.sendRedirect("index.jsp");}*/
Connection ct=null;
Statement sm=null;
ResultSet rs=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:mytest");
sm=ct.createStatement();
rs=sm.executeQuery("select * from userTable ");
while(rs.next())
{
if(rs.getString("name").equals(u)) out.println("用户名存在!"+u);
else out.println("用户名不存在"+u);
if(rs.getString("password").equals(p)) out.println("密码正确!"+p);
else out.println("密码不正确"+p);
}
}
catch(Exception e)
{e.printStackTrace();}
finally{
try{
if(rs!=null) rs.close();
if(sm!=null) sm.close();
if(ct!=null) ct.close();}
catch(
SQLException e) {e.printStackTrace();}
}
%>
结果 :用户名不存在???ê 密码不正确33 用户名不存在???ê 密码不正确33
注释掉的部分,是运行成功的。
使用的 <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%>
想知道是不是因为使用是sun.jdbc.odbc.JdbcOdbcDriver的原因。因为安com.microsoft.jdbc.sqlserver.SQLServerDriver
时,弄了半天也没成功
------解决方案--------------------1.前天传入的参数是乱码,你可以自己先把前台传入的参数打印出来看看
2.你后台这逻辑也太奇怪了吧,为什么要把所有的数据查出来再比较,直接把你传入的username跟password加到where条件语句中查询不就可以了
------解决方案--------------------过滤器来处理乱码,method=“post",百度吧,有很多讨论这个的。
------解决方案--------------------你前面页面传递参数时估计就是乱码了,后面String u=request.getParameter("user");得到的u、p就是乱码了
写个过滤器来解决乱码问题吧。
------解决方案--------------------是因为乱码才出现这情况的
------解决方案--------------------
------解决方案--------------------逻辑有错误.你这样等于说有一条记录匹配不上就报错。而应该是所有记录都匹配不上才应该报错
<%
String u=request.getParameter("user");
String p=request.getParameter("userPassword");
/* if(u.equals("shunping") && p.equals("123") )
{
response.sendRedirect("wellcom.jsp?username="+u);}
else {response.sendRedirect("index.jsp");}*/
Connection ct=null;
Statement sm=null;
ResultSet rs=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:mytest");
sm=ct.createStatement();
rs=sm.executeQuery("select * from userTable ");
boolean no=false;
while(rs.next())
{
if(rs.getString("name").equals(u)){
no=true;
if(rs.getString("password").equals(p)) out.println("登陆成功");
else