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条件语句中查询不就可以了
你前面页面传递参数时估计就是乱码了,后面String u=request.getParameter("user");得到的u、p就是乱码了
写个过滤器来解决乱码问题吧。
String user=new String((request.getParameter("user")).getBytes("ISO-8859-1"),"gb2312");