在给定表单的情况下执行服务器端servlet验证时,我注意到了一些问题,我需要验证名字文本字段
<form action="Test" method="POST"> <input type="text" name="firstname" /> <input type="submit" value="submit" /> </form>
Servlet验证代码不适用于我。它总是看到长度为0的名字不为null
if(request.getParameter("firstname")==null) { out.println("Error"); }`
但在修改表单后,将enctype =“ multipart / form-data”添加为
<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?它返回空字符串
enctype="multipart/form-data"
if(request.getParameter("firstname")==null)
这将检查String的引用是否指向null,这不是您想要的值。如果要检查空字符串,请执行以下操作:
if(request.getParameter("firstname")==null || request.getParameter("firstname").isEmpty())
使用时enctype="multipart/form-data",所有参数都 编码 在请求正文中。这意味着request.getParameter(...)它将null随后为所有发布的参数返回。
request.getParameter(...)
null