对复杂的表单进行判断
2015-07-19 18:31
351 查看
客户端验证;使用java script
<%@ 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> <script type="text/javascript"> function validate() { var username=document.getElementsByName("username")[0]; var password=document.getElementsByName("password")[0]; var gender=document.getElementsByName("gender"); var interest=document.getElementsByName("interest"); var comment=document.getElementsByName("comment")[0]; if(username.value.length<1) { alert("用户名不能为空"); return false; } if(username.value.length<4||username.value.length>10) { alert("用户名长度在4-10之间"); return false; } if(password.value.length<4||password.value.length>10) { alert("密码长度在4-10之间"); return false; } if(!gender[0].checked&&!gender[1].checked) { alert("性别必须选择"); return false; } var n=0; for(var i=0;i<interest.length;i++) { if(interest[i].checked) { n++; } } if(n<1) { alert("兴趣至少选择一个"); return false; } if(n>3) { alert("兴趣最多选择三个"); return false; } if(comment.value.length<1) { alert("必须填写说明"); return false; } return true; } </script> </head> <body> <form onsubmit="return validate();"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 性别:男<input type="radio" name="gender" value="男"> 女<input type="radio" name="gender" value="女"><br> 兴趣:足球<input type="checkbox" name="interest" value="足球"> 篮球<input type="checkbox" name="interest" value="篮球"> 羽毛球<input type="checkbox" name="interest" value="羽毛球"> 网球<input type="checkbox" name="interest" value="羽毛球"> <br> 地址:<select name="address"> <option value="上海">上海</option> <option value="北京">北京</option> <option value="天津">天津</option> </select><br> 说明:<textarea rows="5" cols="7" name="comment" ></textarea><br> <input type="submit" value="点击确认"> <input type="reset" value="重置"> </form> </body> </html>
使用服务器进行验证:
第一个jsp页面
<%@ 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> </head> <body> <form action="myloginservlet"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 性别:男<input type="radio" name="gender" value="男"> 女<input type="radio" name="gender" value="女"><br> 兴趣:足球<input type="checkbox" name="interest" value="足球"> 篮球<input type="checkbox" name="interest" value="篮球"> 羽毛球<input type="checkbox" name="interest" value="羽毛球"> 网球<input type="checkbox" name="interest" value="羽毛球"> <br> 地址:<select name="address"> <option value="上海">上海</option> <option value="北京">北京</option> <option value="天津">天津</option> </select><br> 说明:<textarea rows="5" cols="7" name="comment" ></textarea><br> <input type="submit" value="点击确认"> <input type="reset" value="重置"> </form> </body> </html>
servlet的处理页面
package firstservlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class myloginservlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username=request.getParameter("username"); String password=request.getParameter("password"); String gender=request.getParameter("gender"); String[] interest=request.getParameterValues("interest"); String address=request.getParameter("address"); address=new String(address.getBytes("iso-8859-1"),"utf-8"); String comment=request.getParameter("comment"); List<String>list=new ArrayList<String>(); if(null==username||"".equals(username)) { list.add("用户名不能为空"); } else if(username.length()<4) { list.add("用户名长度最短为4"); } else if(username.length()>10) { list.add("用户名长度最长为10"); } if(null==password||"".equals(password)) { list.add("密码不能为空"); } else if(password.length()<4) { list.add("密码长度最短为4"); } else if(password.length()>10) { list.add("密码长度最长为10"); } if(gender==null) { list.add("必须选择性别"); } if(interest==null) { list.add("兴趣最少为1"); } else if(interest.length>3) { list.add("兴趣最大为3"); } if(comment==null||"".equals(comment)) { list.add("说明没有填写"); } if(list.isEmpty()) { request.setAttribute("username", username); request.setAttribute("password", password); request.setAttribute("gender", gender); request.setAttribute("interest", interest); request.setAttribute("address",address); request.setAttribute("comment", comment); request.getRequestDispatcher("loginSuccess.jsp").forward(request, response); } else { request.setAttribute("error",list ); request.getRequestDispatcher("loginFailure.jsp").forward(request, response); } } }
如果符合要求,跳转到成功的页面
<%@ 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>My JSP 'loginSuccess.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.getAttribute("username") %><br> 密码:<%=request.getAttribute("password") %><br> 性别:<%=request.getAttribute("gender") %><br> 兴趣:<%String[] interest=(String[])request.getAttribute("interest"); for(String str:interest) {%> <%=str %> %nbsp; <%} %> 地址:<%=request.getAttribute("address") %><br> 说明:<%=request.getAttribute("comment") %> </body> </html>
如果填写错误,跳转到错误的页面
<%@ 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>My JSP 'loginFailure.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> 错误信息如下:<br><br> <%List<String> list = (List<String>)request.getAttribute("error"); %> <ul> <%for(String str:list) {%> <li><font color="#ff0000"><%=str %></font> <%} %> </ul> </body> </html>
中文乱码
其中会出现中文乱码问题服务器端使用的是iso-8859-1
客户端的jsp用的是utf-8
需要手动在servlet中加入
address=new String(address.getBytes("iso-8859-1"),"utf-8");
相关文章推荐
- linux 删除文件中空格
- HDU 2544 最短路(Dijkstra)
- golang标准库的学习
- STM32 I2C 总线占用问题解析
- UVALive - 3263 That Nice Euler Circuit (几何)
- 这些天的想法
- Android开源项目:贴纸标签相机,快给你的图片贴上贴纸打上标签吧!~
- .net 枚举(使用备注)
- node.js乱码
- 文字数值转换工具
- 使用字节流实现媒体文件的复制
- 任务、进程和线程
- SQL技术内幕三
- PHP扩展开发之PHP的启动与终止
- 类和结构体
- 【转】找工作冲刺阶段计划安排
- 关于python的输出格式控制和函数format
- loadrunner参数化使用mysql数据源
- JavaBean-Servlet-JavaServerPage(转)
- UVa 10340 子序列