【发布时间】:2014-03-27 13:29:49
【问题描述】:
我是 Java 和 servlet 的新手,这只是我坚持的练习。我有一个简单的 HTML 表单,其中包含两个文本字段用于名字和姓氏,以及两个用于性别的单选按钮,以及一个提交按钮。当用户正确填写表单时,servlet 会返回一个页面,上面写着“欢迎光临我的商店,先生或女士(取决于性别按钮)以及他们的名字和姓氏。我所有的工作都正常。我不能得到什么to work 是一个 try-catch 块,如果他们错过了一个名称字段或没有检查性别单选按钮,它将提醒用户。在这种情况下,try-catch 是要走的路还是我应该使用if 循环?我已经在不同的位置插入了 try-catch,但它似乎没有做任何事情。所以我的底线问题是让表单验证工作的最佳方法是什么?
HTML 表单:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Project 7</title>
</head>
<body bgcolor="#FFFFD1">
<p align="left">
<h1>Please Enter Your Name</h1>
<form action="http://localhost:8080/Project/Main">
First Name: <input type="text" name="firstName" ><br>
Last Name: <input type="text" name="lastName" ><br><br><br>
Gender Male<input type="radio" name="rd" value = "0">
Female<input type="radio" name="rd" value = "1"><br><br><br>
<input type="submit" value="Submit Query">
</form>
</body>
</html>
Servlet 代码:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Main")
public class Main extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
static final long serialVersionUID = 1L;
public Main() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Welcome to My Store";
int radio = -1;
String gender = "";
radio = Integer.parseInt(request.getParameter("rd"));
switch (radio) {
case 0:
gender = "Mr";
break;
case 1:
gender = "Ms";
break;
default:
gender = "";
break;
}
out.println("<html>\n" + "<head><title>" + title + "</title></head>\n"
+ "<body bgcolor=\"#ffffd1\">\n" + "<h1 align=\"right\">"
+ title + "</h1>\n" + "<ul>\n" + "</ul>\n" + "" + "Thank you "
+ gender + " " + request.getParameter("firstName") + " "
+ request.getParameter("lastName") + "</body></html>");
}
}
【问题讨论】:
-
使用 javascript 验证 HTML 中的表单
-
try-catch 用于异常处理,但不会得到任何异常。
-
那么 if-else 循环会起作用吗?例如如果 firstName == null out.println“必须输入名字”等等?我只是想弄清楚如何提醒用户填写所有空白。而且我真的处于学习模式,所以完成它的最简单方法是最好的。
-
if-else 结构是条件而不是循环。我发布了一个答案。