8

我正在使用 Tomcat 6,并希望能够从 JSP 中以编程方式检索 maxPostSize(在 server.xml 中的 HTTP 连接器中定义),以便我可以知道最大文件上传大小是多少。

有没有办法得到这个?

4

2 回答 2

6

假设您只有一个带有一个连接器的 Tomcat 服务,那么您可以通过以下方式在 Servlet 中访问它:

int maxPostSize = ServerFactory.getServer().findServices()[0].findConnectors()[0].getMaxPostSize();

ServerFactory顺便说一句org.apache.catlina.ServerFactory

注意:这将您的代码紧密耦合到 Tomcat servlet 容器,并且您的 web 应用程序可能无法在其他 servlet 容器上重用,甚至可能无法在不同的版本上重用。web.xml考虑使用相同的值配置您自己的上下文参数。

<context-param>
    <param-name>maxPostSize</param-name>
    <param-value>2097152</param-value>
</context-param>

然后你可以通过 Servlet 访问它

int maxPostSize = Integer.valueOf(getServletContext().getInitParameter("maxPostSize"));

或在 JSP 中通过

${initParam.maxPostSize}
于 2010-10-08T23:07:12.047 回答
4

在 Tomcat7 中,ServerFactory 类消失了。显然,一个应该能够使用获得服务器参考

org.apache.tomee.loader.TomcatHelper.getServer()

...驻留在 org.apache.openejb:tomee-loader 中。

于 2015-02-26T22:15:01.973 回答