日期:2014-05-18  浏览次数:20666 次

简单的servlet登录验证出了点问题,请大家帮忙看看
各位帮忙看下     为什么会出现java.lang.NullPointerException
出现异常的是这句ps   =   con.prepareStatement(sql);
小弟混csdn不久,请各位前辈指教

public   class   Login   extends   HttpServlet{

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

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

EmpCodeVO   ec   =   new   EmpCodeVO();
String   emp_code   =   request.getParameter( "emp_code ");
ec.setEmp_code(emp_code);
String   password   =   request.getParameter( "password ");
ec.setPassword(password);
DBConnection   dc   =   new   DBConnection();
Connection   con   =   dc.getConnection();
String   sql   =   "select   *   from   emp_code   where   emp_code=?   and   emp_password=? ";
try{
PreparedStatement   ps;
ps   =   con.prepareStatement(sql);
ps.setString(1,   emp_code);
ps.setString(2,   password);
ResultSet   rs   =   ps.executeQuery();
while(rs.next()){
String   emp_code2   =   rs.getString(1);
String   password2   =   rs.getString(2);
if   (emp_code.equals(emp_code2)   &&   password.equals(password2)){

response.sendRedirect( "indexInfo2.htm ");
}   else{
PrintWriter   out   =   response.getWriter();
out.print( "登录失败! ");

}
}
}   catch(Exception   e){

e.printStackTrace();
}

}
}

------解决方案--------------------
PreparedStatement ps = null;是不是应该初始化?
------解决方案--------------------
try{
PreparedStatement ps;
应该是PreparedStatement ps = new PreparedStatement();
因为JVM没给ps分配内存空间,所以出现了错误。