栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Tomcat上运行的servlet过滤器中使用HttpServletRequest#getParts()?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Tomcat上运行的servlet过滤器中使用HttpServletRequest#getParts()?

为了获得

HttpServletRequest#getParts()
在一个工作
Filter
在Tomcat中,您需要设置
allowCasualMultipartParsing="true"
在webapp的
<Context>
元素
Webapp/meta-INF/context.xml
Tomcat/conf/server.xml

<Context ... allowCasualMultipartParsing="true">

因为根据Servlet3.0规范,该

HttpServletRequest#getParts()
属性只能在
HttpServlet
带有
@MultipartConfig
注释的内使用。另请参阅
<Context>
元素的文档:

allowCasualMultipartParsing

设置为

true
Tomcat是否应
multipart/form-data
在调用
HttpServletRequest.getPart*
或时自动解析请求主体
HttpServletRequest.getParameter*
,即使目标servlet没有标注
@MultipartConfig
注释(有关详细信息,请参见Servlet
Specification
3.0,第3.2节)。请注意,除了设置以外,任何其他设置
false
都会导致Tomcat的行为在技术上不符合规范。默认值为
false



具体问题 无关 ,以下绝对不正确:

byte[] b = new byte[(int) p.getSize()];p.getInputStream().read(b);params.put(p.getName(), new String[]{new String(b)});

首先,您不遵守客户端指定的字符编码-如果有的话。其次,这对于二进制文件将失败。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367458.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号