复杂的表单服务器端验证
2013-12-12 20:05
316 查看
<body>
<form onsubmit="return validate(); action="ProcessServlet">
用户名:<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="羽毛球">
地址:<select name="address">
<option value="上海">上海</option>
<option value="北京">北京</option>
<option value="天津">天津</option>
</select><br>
说明:<textarea name="comment" rows="15" cols="20"></textarea><br>
<input type="submit" value="点击确认"> <input type="reset" value="重置">
</form>
</body>
request.setCharacterEncoding("utf-8");
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-1");
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("用户名过短!");
}else if(username.length() >10){
list.add("用户名过长!");
if(null == password || "".equals(password)){
list.add("密码不能为空!");
}else if(password.length() <4){
list.add("密码过短!);
}else if(password.length() <10){
list.add("密码过长!);
}
if(null == gender){
list.add("性别没有选择!");
}
if(null == interest){
list.add("兴趣至少选择一个!);
}else if(interest.length >3){
list.add("兴趣最多选择三个!");
}
if(null == comment ||"".equals(comment)){
list.add("说明没有填写!");
}
response.setCharacterEncodion("utf-8");
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);
}
loginSuccess.jsp
用户名:<%= request.getAttribute("username") %><br>
密码:<%= request.getAttribute("password") %><br>
性别:<%= request.getAttribute("gender") %><br>
兴趣:<% String [] interest = (String [] request.getAttribute("interest");
for(String str : interest){ %>
<%= str %>
<% } %>
<br>
地址:<%=request.getAttribute("address") %><br>
说明:<%=request.getAttribute("comment") %>
loginFailure.jsp
错误信息如下:<br><br><br>
<% List<String> list =(List<String>) request.getAttribute("error");%>
<ul>
<% for(String str : list){
%>
<li><font color="#ff0000"><%= str %></font></li>
<% }%>
</ul>
<form onsubmit="return validate(); action="ProcessServlet">
用户名:<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="羽毛球">
地址:<select name="address">
<option value="上海">上海</option>
<option value="北京">北京</option>
<option value="天津">天津</option>
</select><br>
说明:<textarea name="comment" rows="15" cols="20"></textarea><br>
<input type="submit" value="点击确认"> <input type="reset" value="重置">
</form>
</body>
request.setCharacterEncoding("utf-8");
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-1");
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("用户名过短!");
}else if(username.length() >10){
list.add("用户名过长!");
if(null == password || "".equals(password)){
list.add("密码不能为空!");
}else if(password.length() <4){
list.add("密码过短!);
}else if(password.length() <10){
list.add("密码过长!);
}
if(null == gender){
list.add("性别没有选择!");
}
if(null == interest){
list.add("兴趣至少选择一个!);
}else if(interest.length >3){
list.add("兴趣最多选择三个!");
}
if(null == comment ||"".equals(comment)){
list.add("说明没有填写!");
}
response.setCharacterEncodion("utf-8");
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);
}
loginSuccess.jsp
用户名:<%= request.getAttribute("username") %><br>
密码:<%= request.getAttribute("password") %><br>
性别:<%= request.getAttribute("gender") %><br>
兴趣:<% String [] interest = (String [] request.getAttribute("interest");
for(String str : interest){ %>
<%= str %>
<% } %>
<br>
地址:<%=request.getAttribute("address") %><br>
说明:<%=request.getAttribute("comment") %>
loginFailure.jsp
错误信息如下:<br><br><br>
<% List<String> list =(List<String>) request.getAttribute("error");%>
<ul>
<% for(String str : list){
%>
<li><font color="#ff0000"><%= str %></font></li>
<% }%>
</ul>