当我们在做表单提交的时候,我们可能提交的数据形式多种多样,例如:文本,图片,音频,视频等方式提交,这样一来,一个http里包含了多个多种不同类型的数据,所以我们要使用enctype="multipart/form-data"来将请求体分隔成多个部分,每个部分都有自己的头部信息。这些部分可以包含不同的数据类型,例如文本、图像、音频或文件。
但是通过这种方式当表单的 enctype 属性设置为 multipart/form-data 时,浏览器会以一种不同于默认情况的方式对表单数据进行编码和发送。这样一来getParameter 方法并不能直接获得表单字段的值,获取的无论什么值都是返回 null,我们设置的form表单post提交设置字符集req.setCharacterEncoding("utf-8");也不起作用了,因此我们要使用与处理文件上传相对应的方式。
由于我们采用的是POST提交方式,并且设置了multipart/form-data,所以我们使用getParameter获取的参数是来自url上的,如果url上没有这个参数,返回的就是null,并且url是get提交方式。