With java servlet 3.0 file upload, 如何获取 max-file-size 值

With java servlet 3.0 file upload, how to get max-file-size value

我正在使用 servlet 3 api 在 tomcat 7 中上传文件。
我正在 web.xml.

中设置

如何在我的 java 代码中获取最大文件大小的值,以便告诉用户最大文件大小是多少?

我已在 api 中搜索 Servlet、ServletContext、ServletConfig、ServletRegistration,但找不到任何内容。 multipart-config 值不在 initParameters 中。

我认为另一种提问方式是,如何获取 servlet 的 MultipartConfigElement 对象?同样,在搜索 api 之后,我找不到任何方法来检索它。

我找到了一种做我想做的事情的方法,尽管它使用反射来获取 servlet 配置的私有的、未记录的部分,因此远非理想 - 不能保证它会继续在 tomcat升级。但在 servlet 中,以下内容将获取 MultipartConfigElement(它具有 return 配置的各个位的方法):

ServletConfig scfig = getServletConfig();
MultipartConfigElement mce = null;
try {
    Field config = scfig.getClass().getDeclaredField("config");
    config.setAccessible(true);
    mce = ((StandardWrapper)config.get(scfig)).getMultipartConfigElement();
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException  e) {
    e.printStackTrace();
}