对复杂表单进行客户端服务端验证

来源:互联网 发布:webshell提权工具包 编辑:程序博客网 时间:2024/05/19 15:20

对上面这个用户基本信息页面进行客户端与服务器端的验证,下面是验证条件

用户名与密码不能为空,且长度在4与10之间。

性别必须选择一个,兴趣也必须选择一个,不能超过三个。

地址不作要求,说明必填。

userlogin.jsp

Html代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <head>  
  3.     <script type="text/javascript">     
  4.         function validate(){  
  5.             var username = document.getElementsByName("username")[0];  
  6.             var password = document.getElementsByName("password")[0];  
  7.             var gender = document.getElementsByName("gender");  
  8.             var interest = document.getElementsByName("interest");  
  9.             var comment = document.getElementsByName("comment")[0];  
  10.             if(username.value.length < 1){  
  11.                 alert("用户名不能为空")  
  12.                 return false;  
  13.             }  
  14.             if(password.value.length < 1){  
  15.                 alert("用户密码不能为空")  
  16.                 return false;  
  17.             }  
  18.             if(username.value.length <4 || username.value.length >10){  
  19.                 alert("用户名长度必须大于等于4小于等于10")  
  20.                 return false;  
  21.             }  
  22.             if(password.value.length <4 || password.value.length >10){  
  23.                 alert("用户密码长度必须大于等于4小于等于10")  
  24.                 return false;  
  25.             }  
  26.             if(!gender[0].checked && !gender[1].checked){  
  27.                 alert("必须选择一个性别");  
  28.                 return false;  
  29.             }  
  30.             var n = 0;  
  31.             for(var i =0;i<interest.length;i++){  
  32.                 if(interest[i].checked){  
  33.                     n++;  
  34.                 }  
  35.             }  
  36.             if(n<1){  
  37.                 alert("兴趣至少应选择一项");  
  38.                 return false;  
  39.             }  
  40.             if(n == 4){  
  41.                 alert("兴趣不能超过三项");  
  42.                 return false;  
  43.             }  
  44.             if(comment.value.length <1){  
  45.                 alert("说明必须填写");  
  46.                 return false;  
  47.             }  
  48.             return true;  
  49.         }  
  50.     </script>  
  51. </head>  
  52. <html>   
  53.   <body>  
  54.     <form onsubmit="return validate();" action="UserValidateServlet">   
  55.         用户名:<input type="text" name="username"/><br>  
  56.         密  码:<input type="password" name="password"/><br>  
  57.         性别: 男<input type="radio" name="gender" value="男"/>&nbsp;&nbsp; 女<input type="radio" name="gender" value="女"/><br>  
  58.         兴趣:足球<input type="checkbox" name="interest" value="足球"/>&nbsp;&nbsp;  
  59.         篮球<input type="checkbox" name="interest" value="篮球"/>&nbsp;&nbsp;  
  60.         排球<input type="checkbox" name="interest" value="排球"/>&nbsp;&nbsp;  
  61.         羽毛球<input type="checkbox" name="interest" value="羽毛球"/>&nbsp;&nbsp;<br>  
  62.         地址:  
  63.         <select name="address">  
  64.             <option value="上海">上海</option>  
  65.             <option value="北京">北京</option>  
  66.             <option value="天津">天津</option>  
  67.         </select>  
  68.         <br>  
  69.         说明:  
  70.         <textarea name="comment" rows="15" cols="20"></textarea><br>  
  71.         <input type="submit" value="点击确认">&nbsp;&nbsp;&nbsp;<input type="reset" value="重置">  
  72.     </form>  
  73.   </body>  
  74. </html>  

 

服务器端验证:新建一个Servlet

UserValidateServlet.java

Java代码  收藏代码
  1. package com.test.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. public class UserValidateServlet extends HttpServlet {  
  12.   
  13.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  14.             throws ServletException, IOException {  
  15.         String username = request.getParameter("username");  
  16.         String password = request.getParameter("password");  
  17.         String gender = request.getParameter("gender");  
  18.         String[] interest = request.getParameterValues("interest");  
  19.         String address = request.getParameter("address");  
  20.         String comment = request.getParameter("comment");  
  21.         List<String> list = new ArrayList<String>();  
  22.           
  23.         if(username == null || password == null){  
  24.             list.add("用户名或密码不能为空");  
  25.         }  
  26.         if((username.length() <4 || username.length() >10) || (password.length() <4 || password.length() >10)){  
  27.             list.add("用户名或密码的长度不能小于4或大于10");  
  28.         }  
  29.         if(gender == null){  
  30.             list.add("性别必须选择");  
  31.         }  
  32.         if(comment == null){  
  33.             list.add("评论不能为空");  
  34.         }  
  35.         if(interest == null || interest.length > 3){  
  36.             list.add("兴趣不能为空或选择不能超过3个");  
  37.         }  
  38.         if(list.isEmpty()){  
  39.             request.setAttribute("username", username);  
  40.             request.setAttribute("password", password);  
  41.             request.setAttribute("gender", gender);  
  42.             request.setAttribute("interest", interest);  
  43.             request.setAttribute("address", address);  
  44.             request.setAttribute("comment", comment);  
  45.             request.getRequestDispatcher("loginSuccess.jsp").forward(request, response);  
  46.         }else{  
  47.             request.setAttribute("list", list);  
  48.             request.getRequestDispatcher("loginFail.jsp").forward(request, response);  
  49.         }  
  50.     }  
  51.   
  52.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  53.             throws ServletException, IOException {  
  54.         super.doPost(request, response);  
  55.     }  
  56.   
  57. }  

 

0 0