当前位置: 代码迷 >> Java Web开发 >> 注册的判断有关问题
  详细解决方案

注册的判断有关问题

热度:3727   发布时间:2013-02-25 21:21:14.0
注册的判断问题
我的想法是想在doreguser.jsp里判断是否表中存在该姓名,如果存在就还跳转到注册页面,如果不存在就跳转到check.jsp页面,check.jsp页面时将注册信息插入表中的,我已经做成功了,就是判断是否存在的页面doreguser.jsp出问题,无论填入什么,都是跳转到注册页面,即使表中的用户不存在,也还是不能跳转到check.jsp页面去执行将数据插入,以下是我的doreguser.jsp页面,求高手帮我看下问题出在哪

doreguser.jsp
<%
 
  Connection conn = null ;
  PreparedStatement pstm = null ;
  //ResultSet rs = null ;
%>
<%

   
  String name = request.getParameter("name") ;
   
%>
<%
  String sql = "SELECT * FROM users WHERE name=?" ;
  try
  {
   
  conn = ConnectionManager.getConnection() ;
  pstm = conn.prepareStatement(sql) ;
  pstm.setString(1,name) ;
  ResultSet rs = pstm.executeQuery() ;
  if(rs!=null){ 
  out.println("该用户名已经被注册!"); 
  response.sendRedirect("reguser.jsp");
}
else{
  response.sendRedirect("check.jsp");
}
   
  // 依次关闭
  rs.close() ;
  pstm.close() ;
  conn.close() ;
}
catch(Exception e) {
out.println(e);
}
%>

------解决方案--------------------------------------------------------
应该是这样判断,

 ResultSet rs = pstm.executeQuery() ;
if(!rs.next()){
out.println("该用户名已经被注册!");
response.sendRedirect("reguser.jsp");
}
else{
response.sendRedirect("check.jsp");
}
------解决方案--------------------------------------------------------
不好意思写反了
ResultSet rs = pstm.executeQuery() ;
if(rs.next()){
out.println("该用户名已经被注册!");
response.sendRedirect("reguser.jsp");
}
else{
response.sendRedirect("check.jsp");
}

当rs.next时有数据说明你再数据库中存在记录,所以跳转到reguser.jsp去了
------解决方案--------------------------------------------------------
LZ,结果集不论你查到数据没,都不会是null。所以你要判断的是里面有没有数据。

LS的正确。
------解决方案--------------------------------------------------------
恩 是的楼上很对 
我也同意
rs不会是null
rs.next()方法就代表了是否有下一行有就进来没有就不进来
  相关解决方案