<%@page contentType="text/html; charset=gb2312" %>
<%@page import="java.util.*">
<%
String username=request.getParameter("username");
String user_psd=request.getParameter("user_psd");
String dbname="";
String dbpsd="";
String errMessage="";
if(username.equals(""))
errMessage += "用户名不能为空!";
if(user_psd.equals(""))
errMessage += "密码不能为空!";
try
{
DBase db=new DBase();
String sql1="select user.use_id,user.psd from user where use_id='"+username+"'";
ResultSet rs =db.executeQuery(sql1);
if(rs.next())
{dbname=rs.getString(1);dbpsd=rs.getString(2);}
} catch (Exception ex) {
ex.printStackTrace();
}
if((dbname.equals(username))&&dbpsd.equals(user_psd))
{
//response.sendRedirect("register1.jsp");
}
else{
errMessage+="用户名或密码有错!";
}
%>
肯定是在这里面,不知道哪里有问题,老抛出错误!
------解决方案--------------------
{dbname=rs.getString(1);dbpsd=rs.getString(2);}
应该是:{dbpsd=rs.getString(1);dbname=rs.getString(2);}
吧,密码和用户名取反了吧,因为下面你判断的时候用的((dbname.equals(username))&&dbpsd.equals(user_psd))
------解决方案--------------------
if(username.equals(""))username可能为空....你可以if(username==null||username.equals(""))判断试试
------解决方案--------------------
String username=request.getParameter("username");
String user_psd=request.getParameter("user_psd");
//请求可能不带这两个参数过来吧,他两有可能是NULL哦
String dbname="";
String dbpsd="";
String errMessage="";
if(username.equals(""))
errMessage += "用户名不能为空!";
if(user_psd.equals(""))
errMessage += "密码不能为空!";
------解决方案--------------------
就算你判断了是否为null,但是你判断完接着往下执行,下面还会使用null的变量,还是会出空指针异常
------解决方案--------------------
原因:
诸如username.equals("")的语句判断会引起空指针,因为username可能为空
解决方法:
"".equals(username),这样就没问题了,你把其他的也改下
------解决方案--------------------
------解决方案--------------------
String username=request.getParameter("username");
String user_psd=request.getParameter("user_psd");
user_psd 也要判断是否为NULL
if(username==null||username.equals(""))
errMessage += "用户名不能为空!";
else if(user_psd==null||user_psd.equals("")){
errMessage += "密码不能为空!";
}
------解决方案--------------------
dbname和dspsd也要判断为空的情况...