Tomcat: il caricamento di swf in pagina
Domanda
che cosa è il metodo consigliato per caricare un file SWF nella mia pagina?
solo per usare HttpServletResponse.getWriter e per stampare con essa l'oggetto SWF, o c'è un metodo più efficiente?
Soluzione
Se si tratta di un file SWF statico, è sufficiente inserirlo in un percorso sfogliabile pubblicamente e consentire Tomcat per servire come un file statico. Se si sta generando un file SWF in modo dinamico, ServletResponse.getWriter()
è perfettamente bene finché si ricorda di impostare l'intestazione Content-type
HTTP per application/x-shockwave-flash
. Si può fare che appena prima di scrivere al flusso di output con ServletResponse.setContentType()
in questo modo:
resp.setContentType("application/x-shockwave-flash");
Si potrebbe anche voler pensare a impostare alcune intestazioni relativi caching HTTP, come Cache-Control
e Expires
se si vuole i browser siano in grado di memorizzare nella cache i file SWF. È possibile farlo con HttpServletResponse.setHeader()
o HttpServletResponse.addHeader()
. Per il caso di un file SWF statico, si dovrà impostare intestazioni di cache in un Filter
mappato con un <url-pattern>
.
Un altro punto degno di nota è che fa riferimento a contenuto SWF in modo cross browser amichevole che aggira un irritante comportamento extra-click in alcune versioni di MSIE è diventato una sorta di magia nera. Mi consiglia di utilizzare il biblioteca SWFObject (ospitato su Google Code) di astrarre le brutture via.