Come risposta a una richiesta Ajax, vorrei inviare il file compresso e scassinato JSON dal mio programma Java. Lo so, avrei bisogno di impostare Content-Encoding nell'intestazione di risposta su gzip, ma è tutto ciò che devo fare?Come posso inviare JSON compresso (gzip) come risposta a una richiesta Ajax, da Java?
risposta
Grazie ragazzi per i vostri input. Ho usato il seguente per farlo funzionare.
Nella mia applicazione web.xml, aggiunto il seguente filtro:
<filter>
<filter-name>GZipFilter</filter-name>
<filter-class> org.mortbay.servlet.GzipFilter</filter-class>
<init-param>
<param-name>mimeTypes</param-name>
<param-value>application/json</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>GZipFilter</filter-name>
<url-pattern>*.data</url-pattern>
</filter-mapping>
E nel servlet.xml aggiunto il seguente proprietà fagiolo per DataViewController fagioli.
<beans:property name="contentType" value="application/json" />
Si sarebbe anche necessario assicurarsi che a) il vostro client (browser o app) accetta questa codifica gzip e può trattare con esso b) il server (contenitore per l'applicazione Java) è configurato per inviare le risposte gzippati da predefinito. Se il server è configurato per inviare risposte gzip, l'intestazione del tipo di contenuto sarà probabilmente impostata dal server stesso.
Il codice del lato server deve anche gzip della risposta, a parte l'impostazione dell'intestazione di codifica del contenuto. Puoi dare un'occhiata a GZIPResponseWrapper.java.