Domanda

Sto utilizzando Tomcat 6 e vorrei essere in grado di recuperare maxPostSize (definito nel connettore HTTP in server.xml) a livello di codice da un JSP in modo da poter sapere qual è la dimensione massima di caricamento del file.

C'è un modo per ottenere questo?

È stato utile?

Soluzione

Supponendo che tu abbia un solo servizio Tomcat con un connettore, puoi accedervi in ​​Servlet tramite:

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

ServerFactory è comunque org.apache.catlina.ServerFactory.

Nota:questo accoppia strettamente il tuo codice al servletcontainer Tomcat e la tua webapp potrebbe non essere riutilizzabile su altri servletcontainer, possibilmente anche su versioni non diverse.Considera la possibilità di configurare il tuo parametro di contesto in web.xml con lo stesso valore.

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

Quindi puoi accedervi in ​​Servlet tramite

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

o in JSP da

${initParam.maxPostSize}

Altri suggerimenti

Nel Tomcat7 classe ServerFactory è andato. A quanto pare si dovrebbe essere in grado di ottenere il riferimento Server utilizzando

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

... che risiede nella org.apache.openejb:. Tomee-loader

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top