Вопрос

Я использую Tomcat 6 и хотел бы иметь возможность извлечь программно MaxPostSize (определенный в разъеме http в Server.xml) из JSP, чтобы я мог знать, каков размер загрузки файла MAX.

Есть ли способ получить это?

Это было полезно?

Решение

Предполагая, что у вас только один сервис Tomcat с одним соединителем, вы можете получить к нему доступ к сервиру с:

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

ServerFactory кстати org.apache.catlina.ServerFactory.

ПРИМЕЧАНИЕ. Это плотному пару Вашему коду TOMCAT ServletContainer, и ваш WebApp также не могут быть воспроизведены на других сервлетеле, возможно, даже не разных версий. Рассмотрите возможность настройки вашего собственного параметра контекста в web.xml с тем же значением.

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

Тогда вы можете получить доступ к нему в сервлете

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

или в JSP

${initParam.maxPostSize}

Другие советы

В Tomcat7 класс ServerFactory исчез. По -видимому, следует получить ссылку на сервер, используя

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

... который находится в org.apache.Openejb: Tomee-Loader.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top