<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="beans.connDB"%>
<%@ page import="beans.chStr"%>
<%
connDB conn=new connDB();
chStr chStr=new chStr();
String username=chStr.chStr(request.getParameter("username"));
String PWD=chStr.chStr(request.getParameter("password"));
//此处必须进行编码转换,否则输入中文用户名时将出现乱码
try{
ResultSet rs=conn.executeQuery("select * from name where username='"+username+"' and freeze=0");
if(rs.next()){
if(PWD.equals(rs.getString("password"))){
session.setAttribute("username",username);
response.sendRedirect("index.jsp");
}else{
out.println("<script language='javascript'>alert('您输入的用户名或密码错误,请与管理员联系!');window.location.href='dl.jsp';</script>");
}
}else{
out.println("<script language='javascript'>alert('您输入的用户名或密码错误,或您的账户已经被冻结,请与管理员联系!');window.location.href='dl.jsp';</script>");
}
}catch(Exception e){
out.println("<script language='javascript'>alert('您的操作有误!');window.location.href='dl.jsp';</script>");
}
conn.close();
%>
为什么我登陆页面输入的密码和数据库一样,但是还是提示我密码不对

解决方案 »

  1.   

    (1)首先,你在这个页面中用了request.getParameter(xx);这个方法,那应该在JSP小脚本的开头加上request.setCharacterEncoding("GBK");这行代码,这样才能使下文的处理遵循正确的编码格式!
    (2)看一下你的SQL查询语句是否有问题,您的select * from name where username='"+username+"' and freeze=0中"freeze=0"这个字段是什么,有什么作用,放在数据库里面测试一下!
      
      

  2.   

    第一.
    String PWD=chStr.chStr(request.getParameter("password")); 
    将PWD打印出来
    System.out.println(PWD);第二.
    将rs.getString("password")打印出来
    System.out.println(rs.getString("password"));最后将2个值进行比较,看是否是相等的。