Программно получить MaxPostSize Connector Tomcat HTTP в JSP
-
28-09-2019 - |
Вопрос
Я использую 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.