Java Servlet验证混淆 [英] Java Servlet Validation Confused
问题描述
执行服务器端servlet验证时,我注意到了一些问题 给定表格,我需要验证名字文本字段
I have noticed some problem when performing server side servlet validation given the form, i need to validate the firstname text field
<form action="Test" method="POST">
<input type="text" name="firstname" />
<input type="submit" value="submit" />
</form>
不适用于我的Servlet验证代码.总是看到length = 0的名字不为null
Servlet validation code that does not work for me. it always see firstname with length=0 not null
if(request.getParameter("firstname")==null)
{
out.println("Error");
}`
但是在修改表单后,将enctype ="multipart/form-data"添加为
but after modifying the form adding enctype="multipart/form-data" to be
<form action="Test" method="POST" enctype="multipart/form-data" >
<input type="text" name="firstname" />
<input type="submit" value="submit" />
</form>
验证代码适用于,,
这里的问题是enctype="multipart/form-data"
的功能是什么?
还
为什么request.getParameter("firstname")不会为空字段返回null?它返回空字符串
the question here is what is the function of enctype="multipart/form-data"
?
also
why request.getParameter("firstname") doesnot return null for empty field ? it returns empty string
推荐答案
if(request.getParameter("firstname")==null)
这将检查String的引用是否指向null,这不是您想要的.如果要检查空字符串,请执行以下操作:
This checks if the reference of the String points to null, which is not what you want to do I guess. If you want to check for an empty String, do:
if(request.getParameter("firstname")==null
|| request.getParameter("firstname").isEmpty())
使用enctype="multipart/form-data"
时,所有参数都在请求正文中进行了编码.这意味着request.getParameter(...)
然后将为所有发布的参数返回null
.
When using enctype="multipart/form-data"
, all parameters are encoded in the request body. That means that request.getParameter(...)
will return null
for all posted parameters then.
这篇关于Java Servlet验证混淆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!