为什么不会返回错误的提示框,比如用户名为空的应该返回一个提示框才对呀,帮忙
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="3;url=denglu.jsp">
<title>无标题文档</title>
<%
request.setCharacterEncoding("gb2312"); 
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Tomcat4\\webapps\\ROOT\\web1\\web\\db1.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//ResultSet rs=st;
String errmsg="错误!";
boolean founderr=false;
String name=errmsg;
String userpassword=errmsg;
String reuserpassword=errmsg;if(request.getParameter("name").equals("")){
errmsg=errmsg+"用户名不能为空,";
founderr=true;
}else name=request.getParameter("name");if(request.getParameter("userpassword").equals("")){
errmsg=errmsg+"密码不能为空,";
founderr=true;
}else userpassword=request.getParameter("userpassword");if(request.getParameter("reuserpassword").equals("")){
errmsg=errmsg+"密码确认不能为空,";
founderr=true;
}else reuserpassword=request.getParameter("reuserpassword");if(!userpassword.equals(reuserpassword)){
errmsg=errmsg+"两次密码不同!";
founderr=true;
}
String funtion=request.getParameter("funtion");
String partment=request.getParameter("partment");
String sql="select * from user where name='"+name+"'";
ResultSet rs=st.executeQuery(sql);
if(rs.next()){
    errmsg=errmsg+"用户名已被别人注册";
    founderr=true;
}
elseif(founderr==false) {
String sql1="insert into user(name,password,partment,funtion)values('"+name+"','"+userpassword+"','"+partment+"','"+funtion+"')";
st.executeUpdate(sql1);

st.close();
con.close();
%>
</head>
<body>
<!--<jsp:forward page="denglu.jsp">
</jsp:forward> -->
</body>
</html>

解决方案 »

  1.   

    if(request.getParameter("userpassword")==null||request.getParameter("reuserpassword").equals("")){
      

  2.   

    request.getParameter("name")的结果有可能是"",也有可能是null。所以楼上的答案是可行的
      

  3.   

    这个应该叫客户端js验证...请楼主参考一下我的代码
    <%@ page import="com.personalerp.workflow.cookie.CookieManager" %>
    <%@ page contentType="text/html; charset=utf-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <fmt:setBundle basename="login" var="login"/>
    <html>
    <head>
    <link rel="stylesheet" href="../main.css" type="text/css">
    <title>login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script language="JavaScript" type="text/JavaScript">
            function checkLoginForm() {
                if (document.loginForm.username.value.length <= 0) {
                    alert('Please enter Username');
                    document.loginForm.username.focus();
                    return false;
                }
                if (document.loginForm.password.value.length <= 0) {
                    alert('Please enter Password');
                    document.loginForm.password.focus();
                    return false;
                }
                else {
                    return true;
                }
            }
            function clearTextField() {
                document.loginForm.username.value = "";
                document.loginForm.password.value = "";
            }    </script>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_reloadPage(init) {  //reloads the window if Nav4 resized
      if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
        document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
      else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);
    //-->
    </script>
    </head><body style="background:#EEEEEE">
    <form name="loginForm" action="./login.do" method="post">
        <table width="100%" border="0">
            
            <tr>
                <td>&nbsp;</td>
                <td> 
                  <div align="center"><img src="images/perp_login.jpg" width="640" height="480">
                  </div>
                 
                  <div id="Layer1" style="position:absolute; width:300px; height:182px; z-index:1; left: 415px; top: 298px;">
      
       <table width="379" border="0" align="center">
                    <tr>
                        <td width="66"><font color="#FFFFFF">
                            <fmt:message key="username" bundle="${login}"/></font>
                        </td>
                      <td width="173"><input type="text" name="username" value="<%=CookieManager.getCookieUsername()%>">
                      </td>
                        <td width="28">&nbsp;</td>
                        <td width="94">&nbsp;</td>
                    </tr>
                    <tr>
                        <td><font color="#FFFFFF"><fmt:message key="password" bundle="${login}"/></font></td>
                        <td><input type="password" name="password"></td>
                        <td><input type="checkbox" name="rememberflag" value="1"></td>
                        <td><font color="#FFFFFF"><fmt:message key="remember" bundle="${login}"/></font></td>
                    </tr>
                    <tr>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>                    <td>&nbsp;</td>
                        <td><input type="submit" name="submit" value="<fmt:message key="submit" bundle="${login}"/>"
                                   onClick="return checkLoginForm()">
                            <input type="button" name="reset" value="<fmt:message key="reset" bundle="${login}"/>"
                                   onClick="clearTextField()"></td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>
                        <td>&nbsp;</td>
                        <td><a href="../mail.jsp"><fmt:message key="forget" bundle="${login}"/></a></td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
    </form></body>
    </html>
      

  4.   

    你可以做前端验证吗 
    这样还可以减轻服务器的
    用javascript写 
    很简单的
    如果用你的这个中方法也可以的
    if(request.getParameter("username")==null||request.getParameter("username").equals(""))
    <%
       out.println("<script language=\"JavaScript\">");
       out.println("<!--");
       out.println("alert(\'用户名输入不能为空!\');");
       out.println("history.back(1);");
       out.println("//-->");
       out.println("</script>");
    %>
      

  5.   

    你的程序中虽然定了errmsg这个字段,但是你根本就没有让他显示,怎么能给你弹出提示框呢
      

  6.   

    同意   xinxideyilian(心细的依恋) ( )  !!!