1

在给定表单执行服务器端 servlet 验证时,我注意到一些问题,我需要验证名字文本字段

     <form action="Test" method="POST">
        <input type="text" name="firstname" />
        <input type="submit" value="submit" />
    </form>

对我不起作用的 Servlet 验证代码。它总是看到长度= 0 不为空的名字

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 ?它返回空字符串

4

1 回答 1

2
if(request.getParameter("firstname")==null)

这将检查字符串的引用是否指向 null,我猜这不是您想要做的。如果要检查空字符串,请执行以下操作:

if(request.getParameter("firstname")==null 
     || request.getParameter("firstname").isEmpty())

使用时enctype="multipart/form-data",所有参数都编码在请求正文中。这意味着request.getParameter(...)它将返回null所有已发布的参数。

于 2013-05-06T12:25:40.187 回答