我正在使用 Tomcat 6,并希望能够从 JSP 中以编程方式检索 maxPostSize(在 server.xml 中的 HTTP 连接器中定义),以便我可以知道最大文件上传大小是多少。
有没有办法得到这个?
我正在使用 Tomcat 6,并希望能够从 JSP 中以编程方式检索 maxPostSize(在 server.xml 中的 HTTP 连接器中定义),以便我可以知道最大文件上传大小是多少。
有没有办法得到这个?
假设您只有一个带有一个连接器的 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}
在 Tomcat7 中,ServerFactory 类消失了。显然,一个应该能够使用获得服务器参考
org.apache.tomee.loader.TomcatHelper.getServer()
...驻留在 org.apache.openejb:tomee-loader 中。