1、验证:
客户端验证:
减少服务器负载
缩短用户等待时间
兼容性难
服务器端验证:
统一确认
兼容性强
服务器负载重
2、使用Javascript进行表单检验的常用方法:
[javascript] view plaincopyprint?
1 var username = document.getElementByIdx_x("username");
2 var username = document.getElementsByName("username")[0];
3 var nodes = document.getElementsByTagName_r("input");
2.1、基本的表单验证例子:
HTML代码:
[html] view plaincopyprint?
4 <</SPAN>form onsubmit="return validate()" action="loginServlet">
5 username:<</SPAN>input type="text" id="username" name="username"/><</SPAN>br />
6 password:<</SPAN>input type="password" id="username" name="password"><</SPAN>br />
7 <</SPAN>input type="submit" value="submit" />
8 </</SPAN>form>
username:
password:
JS验证代码:
[javascript] view plaincopyprint?
9 function validate(){
10 //使用getElementById方法获取元素
11 var username = document.getElementByIdx_x("username");
12 var password = document.getElementByIdx_x("password");
13 //使用getElementsByName获取一组元素
14 //var username = document.getElementsByName("username")[0];
15 //var username = document.getElementsByName("password")[0];
16 //获取元素的值 并判断长度
17 if(username.value.length == 0){
18 alert("用户名不能为空");
19 return false;
20 }
21 if(password.value.length <6){
22 alert("密码不能少于6位");
23 return false;
24 }
25 return true;
26 }
27 //根据标签获取元素组
28 var nodes = document.getElementsByTagName_r("input");
29 for(var i=0; i
30 //获取标签类型
31 alert(nodes[i].type);
32 }
2.2、单选按钮的验证例子:
HTML代码:
[html] view plaincopyprint?
33 男<</SPAN>input type="radio" name="gender" value="男">
34 女<</SPAN>input type="radio" name="gender" value="女">
JS验证代码:
[javascript] view plaincopyprint?
35 //单选按钮的验证
36 var gender = document.getElementsByName("gender");
37 if(!gender[0].checked && !gender[1].checked){
38 alert("请选择性别!");
39 }
2.3、复选框全选的例子:
HTML代码:
[html] view plaincopyprint?
40 <</SPAN>input type="checkbox" name="selectAll" onclick="selectAll()">Select all<</SPAN>br />
41 <</SPAN>input type="checkbox" name="number" value="1">1<</SPAN>br />
42 <</SPAN>input type="checkbox" name="number" value="2">2<</SPAN>br />
43 <</SPAN>input type="checkbox" name="number" value="3">3<</SPAN>br />
44 <</SPAN>input type="checkbox" name="number" value="4">4<</SPAN>br />
45 <</SPAN>input type="checkbox" name="number" value="5">5<</SPAN>br />
46 <</SPAN>input type="checkbox" name="number" value="6">6<</SPAN>br />
47 <</SPAN>input type="checkbox" name="number" value="7">7<</SPAN>br />
48 <</SPAN>input type="checkbox" name="number" value="8">8<</SPAN>br />
49 <</SPAN>input type="checkbox" name="number" value="9">9<</SPAN>br />
50 <</SPAN>input type="checkbox" name="number" value="10">10<</SPAN>br /><</SPAN>inputtype="checkbox" name="number">10<</SPAN>br />
JS代码:
[javascript] view plaincopyprint?
51
52 function selectAll(){
53 var selectAll = document.getElementsByName("selectAll")[0];
54 if(selectAll.checked){
55 var numbers = document.getElementsByName("number");
56 for(var i=0; i
57 numbers[i].checked = true;
58 }
59 } else {
60 for(var i=0; i
61 numbers[i].checked = false;
62 }
63 }
64 }
判断复选框是否有选择:
[javascript] view plaincopyprint?
65
66 function validateCheckbox(){
67 var n = 0;
68 for(var i=0; i
69 if(numbers[i].checked){
70 n++;
71 }
72 }
73 if(n < 1){
74 alert("至少要选择一项");
75 }
76 }
3、在服务器端使用Servlet进行验证的例子:
[java] view plaincopyprint?
77 @Override
78 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
79 throws ServletException, IOException {
80 String username = req.getParameter("username");
81 String password = req.getParameter("password");
82 //获取单选按钮的值
83 String gender = req.getParameter("gender");
84 //获取复选框的值
85 String[] numbers = req.getParameterValues("number");
86 List list = new ArrayList();
87 //验证判断
88 if("".equals(username)){
89 list.add("用户名不能为空");
90 }
91 if(password == null){
92 list.add("用户密码不能为空");
93 }
94 if(password != null && password.length()<</SPAN>6){
95 list.add("用户密码不能少于6位");
96 }
97 //页面跳转
98 if(list.isEmpty()){
99 req.getRequestDispatcher("index.jsp").forward(req, resp);
100 } else {
101 req.setAttribute("error", list);
102 req.getRequestDispatcher("error.jsp").forward(req, resp);
103 }
104 }
4、Servlet中的编码设置:
[java] view plaincopyprint?
105 req.setCharacterEncoding("utf-8");
106 resp.setCharacterEncoding("utf-8");
107 ...
108 //编码设置
109 gender = new String(gender.getBytes("iso-8859-1"),"utf-8");
本文详细介绍了HTML、JavaScript及Servlet在表单验证中的应用,包括客户端验证与服务器端验证,以及如何通过验证确保用户输入的有效性和安全性。
381

被折叠的 条评论
为什么被折叠?



