当前位置:  开发笔记 > 编程语言 > 正文

servlet可以确定发布到它的数据是否为enctype ="multipart/form-data"?

如何解决《servlet可以确定发布到它的数据是否为enctype="multipart/form-data"?》经验,为你挑选了3个好方法。

我有一个servlet,用于许多不同的操作,在前端控制器模式中使用.有谁知道是否可以判断回发的数据是否为enctype ="multipart/form-data"?在我决定之前,我无法读取请求参数,因此我无法将请求分派给适当的控制器.

有任何想法吗?



1> Darren Hicks..:

如果您打算尝试使用上面提到的request.getContentType()方法,请注意:

    request.getContentType()可能返回null.

    request.getContentType()可能不等于 "multipart/form-data",但可能只是从它开始.

考虑到这一点,您应该运行的检查是:

if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1 ) {
// Multipart logic here
}



2> Loren Segal..:

是的,Content-type用户代理请求中的标头应包含multipart/form-data(至少)HTML4规范中所述:

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2



3> Kyle Boon..:

您可以调用方法来获取内容类型.

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html#getContentType()

根据http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2,内容类型将是"multipart/form-data".

别忘了:

    request.getContentType()可能返回null.

    request.getContentType()可能不等于"multipart/form-data",但可能只是从它开始.

所以,考虑到这一切:

if (request.getContentType() != null && 
    request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1 ) 
{
    << code block >>
} 


凯尔,在我提交了*正确的答案后,你改变了答案,成为我的答案.也许至少引用这个事实可能很酷......
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有