高手救我!如何用jsp实现对数据库的密码修改!
以下是我写的判断是否能对数据库密码修改的方法,但是编译好在我的jsp页面运行时,总是出现新密码输入不一致的错误。
jsp页面中有如下主要的代码:
<%
if(request.getParameter("login")!=null && request.getParameter("uid")!=null &&
request.getParameter("pw")!=null )
{
applications.userRepassword rp=new applications.userRepassword(request.getParameter
("uid").trim(),request.getParameter("pw").trim(),request.getParameter("pw1").trim
(),request.getParameter("pw2").trim());
if(rp.canRepass()){
response.sendRedirect("protect/ok.jsp");
}
else
out.println("<font color=red>"+rp.getErrorInfo()+"</font>");
}
%>
<form name="form2" method="post" action="repassword.jsp">
<p>用户名:
<input name="uid" type="text" id="userid">
</p>
<p>密码:
<input name="pw" type="password" id="pw">
</p>
<p>新密码:
<input name="pw1" type="password">
</p>
<p>确认新密码:
<input name="pw2" type="password">
</p>
<p>
<input type="submit" name="login" value="提交">
</p>
userRepassword.java中的主要代码:
public userRepassword(String uid,String pw,String pw1,String pw2) {
HashMap hm=new HashMap();
DbQuery dq=new DbQuery("select uid,pw from userinfo where uid='"+uid+"'"); //DbQuery()为自己定义的数据查询的方法
ArrayList al=dq.getResult(); //返回查询结果集,转化为ArrayList型
if(dq.getTotalRow()<=0){
errorFlag="没有该用户。";
}
else{
for(int i=0;i<dq.getTotalRow();i++){
hm=(HashMap)al.get(i); //将结果集的行放入hm,为HashMap型集
if(hm.get("pw").equals(pw)){ //在HashMap集中,get("列名")与输入pw比较
String sqlstr="update userinfo set pw='"+pw1+"' where uid='"+uid+"' and pw='"+pw+"' ";
if(pw1==pw2){
DbExecute de=new DbExecute();
de.go(sqlstr); //de.go()为自己定义的数据修改的方法
canRepass = true;
}
else{
errorFlag="新密码输入不一致。";
}
}
else
errorFlag="密码不对。";
}