在我的页面中加载SWF文件的推荐方法是什么?
只是使用HttpServletResponse.getWriter并使用它打印SWF对象,还是有更有效的方法?
答案 0 :(得分:2)
如果它是静态SWF文件,只需将其放在可公开浏览的路径中,并允许Tomcat将其作为静态文件提供。如果要动态生成SWF文件,只要记得将Content-type
HTTP标头设置为application/x-shockwave-flash
,ServletResponse.getWriter()
就完全可以了。您可以在使用ServletResponse.setContentType()
写入输出流之前执行此操作:
resp.setContentType("application/x-shockwave-flash");
如果您希望浏览器能够缓存SWF文件,您可能还需要考虑设置一些与HTTP缓存相关的标头,例如Cache-Control
和Expires
。您可以使用HttpServletResponse.setHeader()
或HttpServletResponse.addHeader()
执行此操作。对于静态SWF文件,您必须在使用<url-pattern>
映射的Filter
中设置缓存标头。
值得一提的另一点是,以跨浏览器友好的方式引用SWF内容绕过恼人的extra-click behavior in some versions of MSIE已成为某种黑魔法。我建议使用SWFObject库(托管在Google代码上)来抽象丑陋。