以编程方式在JSP中获取Tomcat HTTP Connector的maxPostSize

Ste*_*ers 7 java jsp tomcat server.xml

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

有没有办法得到这个?

Bal*_*usC 5

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

int maxPostSize = ServerFactory.getServer().findServices()[0].findConnectors()[0].getMaxPostSize();
Run Code Online (Sandbox Code Playgroud)

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

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

<context-param>
    <param-name>maxPostSize</param-name>
    <param-value>2097152</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

然后你可以在Servlet中访问它

int maxPostSize = Integer.valueOf(getServletContext().getInitParameter("maxPostSize"));
Run Code Online (Sandbox Code Playgroud)

或者在JSP中

${initParam.maxPostSize}
Run Code Online (Sandbox Code Playgroud)

  • 遗憾的是,在 Tomcat 7 中,ServerFactory 消失了。 (2认同)