Java Servlet验证困惑

时间:2013-05-06 12:04:46

标签: jsp servlets

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

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

Servlet验证代码对我不起作用。它始终会看到firstname = length = 0 not 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?它返回空字符串

1 个答案:

答案 0 :(得分:2)

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

这会检查String的引用是否指向null,这不是你想要做的。如果要检查空字符串,请执行:

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

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