一尘不染

在JSP中以编程方式获取Tomcat HTTP连接器的maxPostSize

jsp

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

有办法吗?


阅读 332

收藏
2020-06-08

共1个答案

一尘不染

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

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

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

注意:这会将您的代码紧密耦合到Tomcat
servlet容器,并且您的webapp可能无法在其他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}
2020-06-08