<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>用户注册</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<head>
<title>用户注册</title>
<script type="text/javascript">
function todo(){
var name=document.forms[0].name.value;
var psd=document.forms[0].psd.value;
var conpsd=document.forms[0].conpsd.value;
if(name==""&&name==null){
document.getElementById('sName').innerHTML = " 用户名不能为空";
/*alert("用户名不能为空!");*/
return false;
}
if(psd==""&&psd==null){
document.getElementById('sPwd').innerHTML = "  密码不能为空";
    /*alert("密码不能为空!");*/
    return false;
}
if(conpsd!=psd){
document.getElementById('sConpsd').innerHTML = "  前后密码不一致!";
}
}
</script>
</head>  </head>
  
<body>
<table rules="none" frame="void"> 
<form action="register/doregister.jsp" id="form1" name="form1" method="post" onSubmit="return todo()">
 <tr>
 <td align=right>用户名:</td><td><input id="name" name="name" type="text"/>
 <span id="sName" style="color:red"></span></td>
 </tr>  
 <tr>
 <td align=right>密码:</td><td><input id="psd" name="psd" type="password"/>
 <span id="sPsd" style="color:red"></span></td>
 </tr>   
 <tr><td align=right>确认密码:</td><td><input id="conpsd" name="conpsd" type="password"/>
 <span id="sConpsd" style="color:red"></span></td>
 </tr>    
 <tr>
 <td align=right>性别:</td><td><input id="sex1" name="sex" type="radio" value="男" checked="checked"/> 男    <input id="sex2" name="sex" type="radio" value="女"/> 女 </td>
 </tr> 
 <tr>
  <td align=right><input id="submit" name="submit" value="提交" type="submit"/></td>
  <td>  <input id="reset" name="reset" value="重置" type="reset"/></tr>  
  </form> 
  </table>
  </body></html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.bbs.dao.inter.BaseDao"%>
<%@page import="com.bbs.dao.inter.UserDao"%>
<%@page import="com.bbs.dao.impl.UserDaoImpl"%>
<%@page import="com.bbs.entity.User"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'doregister.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
   <%
    request.setCharacterEncoding("utf-8");
    String username = request.getParameter("name").trim();
    String password = request.getParameter("psd");
    String sex = request.getParameter("sex");    BaseDao bd = new BaseDao();
    bd.getCon();    UserDao ud = new UserDaoImpl();
    User user = ud.findUser(username);//判定用户是否存在。    User user1 = new User();
    user1.setuName(username);
    user1.setuPwd(password);
    user1.setuSex(sex);
    user1.setAuthority(2);
    int result = ud.addUser(user1);
    if (user != null) {
    out.println("该用户已经存在!请重新注册!");
    response.setHeader("refresh", "2;URL=../register/register.jsp");
    } else if (result == 0) {
    out.println("注册失败,重新注册!");
    out.println("     (2秒后自动跳转) ");
    response.setHeader("refresh", "2;URL=../register/register.jsp");
    } else {
    out.println("注册成功!!!!可登录界面!");
    out.println("     (2秒后自动跳转) ");
   %>
        <a href="../login/login.jsp">登录</a>
    <%
      response.setHeader("refresh","2;URL=../login/login.jsp");
     }
    %>
  </body>
</html>
想问的是。我用户名和密码也为空的时候。数据库表也会多出一行。这个要在哪里加以阻止啊??

解决方案 »

  1.   

    String username = request.getParameter("name").trim();
        String password = request.getParameter("psd");
        String sex = request.getParameter("sex");在这里验证是否为空或者为null;你不应该把验证只放在前台,因为稍微懂点js的人就可以跳过js的验证!onsubmit失效的问题,我也经常遇到,所以以后干脆不用了
      

  2.   

    LZ,你还是把提交的类型设置成button,之后用onclick="todo()";
    之后当验证通过之后,在获取form.submit();吧。LZ你上面的代码,如果onsubmit()失效之后,后端的代码会自动加入一个空的User对象。
    String username = request.getParameter("name").trim();
        String password = request.getParameter("psd");
        String sex = request.getParameter("sex");
    这里获取之后,也加个用户名的空校验吧。