Java Servlet验证混淆 [英] Java Servlet Validation Confused

查看:74
本文介绍了Java Servlet验证混淆的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

执行服务器端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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆