本帖最后由 firein 于 2010-09-01 15:38:27 编辑

解决方案 »

  1.   

    利用javasCript,在表单提交之前进行验证
      

  2.   


    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta name="author" content="" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <link href="<%=path %>/jsp/szry/css/longLayout.css" rel="stylesheet" rev="stylesheet" type="text/css" media="all" />
    <script type="text/javascript">
    var typeFlag = false;
    function formSubmit()
    {
      
      var userCode=document.getElementById("sysUser.useraccount");
      var user_name=userCode.value;
      var userpwd=document.getElementById("sysUser.userpwd");
      var user_pwd=userpwd.value;
      if (user_name==""){
          alert("用户名不能够为空");
          userCode.focus();
          return false;
      }
      if (user_pwd==""){
          alert("密码不能够为空");
          userpwd.focus();
          return false;
      }
      
      if(typeFlag=false) return false;
      document.LoginForm.submit();
    }
    </script>
    </head>
    <body><div class="page"> <div class="dia_login">
    <form method="post" action="" name="LoginForm">
    <div>
    <p><label for="username">用户名:</label><input   type="text"  name="sysUser.useraccount" id="sysUser.useraccount" onblur=""/></p>
    <p><label for="userpsd">密码:</label><input  type="password" name="sysUser.userpwd" id="sysUser.userpwd" onblur=""/></p>
    <p class="form_sub"><input type="button" name="" value="" class="f_sub_p" onclick="formSubmit();"/><input type="submit" name="" value="" class="f_sub_s" /></p>
    <p class="form_error" style="display:none" id='error'><span id="roleNemeHtml" >*</span></p>
    </div>
    </form>
    </div></div>
    </body>
    </html>
      

  3.   

    1. 这个用js就能做,用个隐藏div放在你输入框旁边,监听输入框onblur事件,当光标离开后,检查,没有,就把那个隐藏div显示出来。2. 这个也是在 js里面做。3. 没做过 .net
      

  4.   

     首选 javascript ,  表单验证啦 , 去 搜一搜....
      

  5.   

    1.在你要验证的文本框旁边放个div什么的,先div里的内容为空,让后在JS验证是如果为空的话就给div的innerText赋值,就赋你想要相应的提示。
      

  6.   

    1 2大家都答了。
    .net中ref就相当于传递个引用在方法内修改了传递的参数后,方法外部可以获取修改后的值。在java中,基本类型不能实现,所以我们只能通过传递Object或者数组。然后改变object中的对象的属性或者数组中的某个元素来达到相同的效果!
      

  7.   

    alert("");  弹出框框  不好  直接给一个div 赋值 就OK了  js 写的麻烦  用jquery 方便简单
    <script type="text/javascript" src="./jquery/jquery.js"></script>
    <script type="text/javascript" src="./jquery/json2.js"></script>
    <script type="text/javascript">
     var code ; //在全局 定义验证码      
         function createCode()      
         {       
           code = "";      
           var codeLength = 6;//验证码的长度      
           var checkCode = document.getElementById("checkCode");      
           var selectChar = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的      
                  
           for(var i=0;i<codeLength;i++)      
           {      
           var charIndex = Math.floor(Math.random()*36);      
           code +=selectChar[charIndex];      
           }      
           if(checkCode)      
           {      
             checkCode.className="code";      
             checkCode.value = code;     
           }      
         }      
            function go(path){
       var MrForm=document.forms[0];
       MrForm.action=path;
       MrForm.submit();
       }      
           $(document).ready(function(){
              $(".pageSize").blur(function(){
         var a=$("#count").val();
         var b=$(".pageSize").val();
             if(parseInt(a%b)>0){
              $(".ye").text(parseInt(a/b)+1);
             }else{
            $(".ye").text(parseInt(a/b));
                 }
                $(".pageNo").val("1");
                if(parseInt($(".pageSize").val())>parseInt($("#count").val())){
                    alert("一共只有"+$("#count").val()+"条信息!");
                 $(".pageSize").val("10");
            }});
           $(".Name").blur(function name(){
          
             if($(".Name").val().length==0){
              
         $(".style1").text(" *不能为空").css(
         {
         "color":"red"
         });return false;
             }else{
              $(".style1").text(" *已经输入").css(
         {
         "color":"#268367"
         });
         for(var i=0;i<$(".Name").val().length;i++){
    var charTest=$(".Name").val().toLowerCase().charAt(i);
    if(  (!(charTest>='0' && charTest<='9')) && (!(charTest>='a' && charTest<='z')) && (charTest!='_')                        ){
    $(".style1").text(" *特殊字符").css({"color":"red"});
    return false;
    }else{
         }}
             } 
             return true;
             });
           $(".Desc").blur(function desc(){
             if($(".Desc").val().length==0){
         $(".style2").text(" *不能为空").css(
         {
         "color":"red"
         });return false;
             }else{
              $(".style2").text(" *已经输入").css(
         {
         "color":"#268367"
         });} return true;});
            $(".vercode").blur(function vercode(){
             if($(".vercode").val().length==0){
         $(".style3").text(" *不能为空").css(
         {
         "color":"red"
         });return false;
             }else{
              $(".style3").text(" *已经输入").css(
         {
         "color":"#268367"
         });}
             if($(".vercode").val()==code){
             $(".style3").text(" *输入正确").css(
         {"color":"#268367"});
             }else{$(".style3").text(" *输入错误").css(
             {"color":"red"});return false;
             }
             return true;}
             ); 
    $(".button").click(function(){
         if(name()&&desc()&&vercode()){
         go("users.do?operate=doLogin");
         createCode();
         }else{
         createCode();
         }
         $(".vercode").val("");
         });
           });
           
           
           
    </script>
    <body onload="createCode()" >
    <TABLE width="780" align="center" CELLSPACING=0 background="images/bodybg.jpg">
    <tr>
      <TD valign=TOP>&nbsp; </td>
    <tr>
    <td>
    </td>
    </tr>
    <tr>
    <td></logic:present>
    </td>
    </tr>
    <tr><td><form name="MrForm" method="post" ><br><br><div align="center"><font color="red">${error }</font></div><table width="420" height="257" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="380" height="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td height="5" bgcolor="#cccccc"></td>
        <td colspan="2" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" rowspan="12" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td height="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td height="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td height="27" class="pt9"><div align="center">欢迎登录系统,请输入您的用户名和密码:</div></td>
        <td width="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td height="13">&nbsp;</td>
        <td width="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td class="pt9" width="90%"><div align="center">用户名:
               <input type="text" name="users.userName" class="Name" size="15"/><span class="style1">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
        </div></td>
        <td width="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td class="pt9"><div align="center">密&nbsp;&nbsp;&nbsp;&nbsp;码:
              <input type="text" class="Desc" name="users.password" size="15"/><span class="style2">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
        </div></td>
        <td width="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td class="pt9"><div align="center">验证码:
             <input id="input1" name="veryCode" class="vercode" type="text" size="15"/><span class="style3">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
        </div>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td class="pt9"><div align="center" >验证码:
             <input type="text" id="checkCode" size="6"/>&nbsp;<a style="Cursor:Hand" onclick="createCode()">换一张</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div></td>
        <td width="5" bgcolor="#888888"></td>
        <td width="5" bgcolor="#aaaaaa"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#eeeeee"></td>
      </tr>
      <tr>
        <td width="5" bgcolor="#eeeeee"></td>
        <td width="5" bgcolor="#cccccc"></td>
        <td width="5" bgcolor="#888888"></td>
        <td><div align="center">
            <input type="button" class="button"  value="登录" name="Submit">
            <input type="reset" name="Submit2" value="清除">
        </div></td>
    </table>
      

  8.   

    如果用户名密码输入错误,在servlet程序中页面跳转的代码前将错误信息存储到一个request或session中,然后在jsp页面用el表达式获得这个值就可以了.如:request.setAttribute("error","用户名或密码错误");
      

  9.   

    加一个<span id="userspan"></span>document.getElementById("userspan").innerHTML("error");
      

  10.   

    谢谢回复。。但是第一点 我想在servlet那边验证
      

  11.   

    servlet里面有个信息类(具体名字不太清楚了,你查下API),再用struct1的html标签<html:error>,就给你说这些了,碰到问题再查不难。
      

  12.   

    请求信息进入servlet后,进行判断验证,通过,就转发到登陆成功页面;不通过,回到登陆页面,并将错误信息设置到,那个“信息类里”面,再将其使用struct1的HTML标签显示出来。。就这些。
      

  13.   

      在servlet里面先是获取页面参数,如果用户未输入肯定不能获取到值,然后你就做判断,如果为空,你就将这样的提示信息放在request作用域:如request.setAttribute("nameEmpty","请输入姓名");和request.setAttribute("passEmpty","请输入密码");然后就跳转到登陆页面,然后再jsp页面上,写一条语句:<%
             String nameEmpty = (String)request.getAttribute("nameEmpty");
             if(nameEmpty == null ||"".equals(nameEmpty)){
                 .....
             }else{
               .....
             }
        %>
    不知道楼主是否是这样的意思?
      

  14.   

    提示要输入用户名密码,用javascript
      

  15.   


    恩 是的
    因为我之前学过.net  现在学java 
    :<%
      String nameEmpty = (String)request.getAttribute("nameEmpty");
      if(nameEmpty == null ||"".equals(nameEmpty)){
      .....
      }else{
      .....
      }
      %>这段 只能写在jsp里面吗?
      

  16.   

    一般的只在客户端校验就可以了,客户端用Jquery感觉更好用
      

  17.   

    都在服务器端处理,
    给服务器的压力太大了,
    而且项目大的话,执行速度太慢,
    和用户交互不太友好
    建议在客户端校验,使用js+div
      

  18.   


    可是一般用户验证 都要查询数据库去check这个用户和密码是否正确的吧?
      

  19.   

    呵呵,看来csdn高手和菜鸟的的人数比例失调。
    楼主是想在servlet验证步骤如下:
    在登录页面login.jsp的中希望显示错误提示的地方使用el表达式 ${requestScope.errormsg}
    然后在servlet中 发现错误后
    1-a) 使用request.setAttrribute("errormsg","用户名或密码不能为空");
    再必须使用request.getRequestDispather("login.jsp").forward(request,response);
    调回原来的登录页面即可。
      

  20.   

    可以把验证结果放到request里,返回到登录页,然后出来显示。Servlet: request.setAttrubite(result);Jsp:<span><c:if test="${result == '1'}">登录成功</c:if></span>
         <span><c:if test="${result == '0'}">登录失败</c:if></span>