我有两个 HTML 表单,一个有隐藏字段标签,另一个没有标签。在验证具有隐藏字段标记的第一个 HTML 表单时,我可以通过获取它的字段名称和值在 servlet 中进行验证。示例如下所示,
带有隐藏标签的 HTML 表单
<form action="/myServlet" method="post" enctype="multipart/form-data">
<input type="hidden" name="myname" value="myvalue"/>
<input type="file" name="file"/>
<input type="submit" value="Submit"/>
Servlet 验证隐藏字段
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter;
iter = upload.getItemIterator(request);
while (iter.hasNext()) {
item = iter.next();
String fileName = item.getName();
String fieldName = item.getFieldName();
if (item.isFormField()) {
String fieldValue = Streams.asString(item.openStream());
if (fieldName.equals("myname")){ //validating Hidden form tag name
// some process goes here
}
}
使用上面的代码,我可以验证隐藏表单字段,但是如果我有一个如下的 HTML 表单,它没有隐藏标签,那么如何处理我的 servlet 进行验证。
没有隐藏标签的 HTML 表单
<form action="/myServlet" method="post" enctype="multipart/form-data">
//No hidden tag
<input type="file" name="file"/>
<input type="submit" value="Submit"/>
我希望能够验证这些不同的情况:
- 带有隐藏字段的表单,以及该字段的请求中的一些内容:VALID
- 具有空隐藏字段的表单:无效
- 没有隐藏字段的表单:有效
主要问题是区分最后两种情况。