首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

修改密码解决方法

2012-05-24 
修改密码在用myeclipse6.5实现修改密码时,即使输入的密码跟数据库里的密码相同,它也显示错误,我在控制台输

修改密码
在用myeclipse6.5实现修改密码时,即使输入的密码跟数据库里的密码相同,它也显示错误,我在控制台输入密码,发现密码没错,是不是myeclipse6.5有问题?
以下是servlet部分的代码
package cn.com.jobedu.my_case;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;


public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  doPost(request,response);

}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String method = request.getParameter("method");
if (method.equals("adminLogin")) {
adminLogin(request, response);
}else if(method.equals("adminLogout")){
adminLogout(request,response);
}else if(method.equals("changeAdminPassword")){
changeAdminPassword(request,response);
}
}

public void adminLogin(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


DataSource ds = null;
  try {
// 通过在context.xml文件,设定的数据源对象的名字,获取数据源对象
Context context = new InitialContext();
ds = (DataSource) context.lookup("java:comp/env/jdbc/case");
} catch (Exception e) {
System.out.println("获取数据源时出错");
}

String Aname=request.getParameter("Aname");
String Akey=request.getParameter("Akey");
String sql = "select * from AdminInfo where Aname=? and Akey=?";
  String params[]={Aname,Akey};
  List list=null;
  AdminInfo adminInfo=null;
QueryRunner qr = new QueryRunner(ds);
try {
list=(List)qr.query(sql,new BeanListHandler(AdminInfo.class),params);
} catch (SQLException e) {

e.printStackTrace();
}
if(list.size()>0){
adminInfo=(AdminInfo)list.get(0);
HttpSession session=request.getSession();
session.setAttribute("adminInfo",adminInfo);
request.getRequestDispatcher("/admin/admin.jsp").forward(request, response);
}else{
request.setAttribute("message", "用户名或密码不正确!");
request.getRequestDispatcher("/admin/adminLogin.jsp").forward(request, response);
}

}


public void adminLogout(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
session.invalidate();
response.sendRedirect("/case/login.jsp");
}

public void changeAdminPassword(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
DataSource ds = null;
try {
// 通过在context.xml文件,设定的数据源对象的名字,获取数据源对象
Context context = new InitialContext();
ds = (DataSource) context.lookup("java:comp/env/jdbc/case");
} catch (Exception e) {
System.out.println("获取数据源时出错");
}
String oldAkey=request.getParameter("oldAkey");
String newAkey=request.getParameter("newAkey");
String reNewAkey=request.getParameter("reNewAkey");
HttpSession session=request.getSession();
AdminInfo adminInfo=(AdminInfo)session.getAttribute("adminInfo");
System.out.println(oldAkey);
System.out.println(newAkey);
System.out.println(reNewAkey);


System.out.println(adminInfo.getAkey());
if(!adminInfo.getAkey().equals(oldAkey)){
request.setAttribute("message", "输入的原密码错误!");
request.getRequestDispatcher("/admin/changeAdminPassword.jsp").forward(request, response);
}else if(newAkey.equals(reNewAkey)){
String sql="update AdminInfo set Akey=? where Aid=?";
String params[]={newAkey,adminInfo.getAid().toString()};
QueryRunner qr=new QueryRunner(ds);
try {
qr.update(sql,params);
} catch (SQLException e) {

e.printStackTrace();
}

response.sendRedirect("/case/admin/admin.jsp");

}else{

request.setAttribute("message", "请输入相同的新密码!");
request.getRequestDispatcher("/admin/changeAdminPassword.jsp").forward(request, response);
}
}


}
servlet部分的代码并没有错误,麻烦各位大侠帮忙看看如何解决,谢谢 
 
 
 
   


[解决办法]
是不是你输入密码的时候有空格呢,你去除空格在用新输入的密码和对象里面的密码做比较,试试
[解决办法]
有些猜测,不过需要验证,麻烦你在这些输出中,增加下面几句话,然后告诉我结果:
System.out.println(adminInfo.getAkey().equals(oldAkey));
System.out.println("[" + adminInfo.getAkey() + "]");

热点排行