一尘不染

Java Servlet验证混淆

jsp

在给定表单的情况下执行服务器端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?它返回空字符串


阅读 223

收藏
2020-06-10

共1个答案

一尘不染

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

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

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

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

2020-06-10