我有一个JWS应用程序,它缓存了几种不同的资源类型。但是,我不想缓存.svg图像。框架似乎不遵守我设置的服务器端缓存控制HTTP头。
我想知道是否有其他方法可以在不缓存的情况下加载.svg图像。我愿意在我的loadSVGDocument()
方法中放置一个解决方案,但我的代码目前是围绕Apache Batik构建的,用于加载.svg文件。有没有一种解决方案可以在Batik库中传递带有noCache标志的输入流
,类似于DocumentBuilderFactory
下面提供的解决方案?
URL url = new URL(fileLocation);
URLConnection connection = url.openConnection();
// Prevent JavaWebStart from returning cached copy.
connection.setUseCaches(false);
// Now fetch the content, e.g.
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(connection.getInputStream());
这是我当前使用多个Apache Batik字段的loadSVGDocument()
方法:
public void loadSVGDocument(final String url)
{
System.out.println("THE SVG URL: " + url);
String oldURI = null;
if (svgDocument != null)
{
oldURI = svgDocument.getURL();
}
final ParsedURL newURI = new ParsedURL(oldURI, url);
String theUrl = newURI.toString();
fragmentIdentifier = newURI.getRef();
loader = new DocumentLoader(userAgent);
nextDocumentLoader = new SVGDocumentLoader(theUrl, loader);
nextDocumentLoader.setPriority(Thread.NORM_PRIORITY);
Iterator it = svgDocumentLoaderListeners.iterator();
while (it.hasNext())
{
nextDocumentLoader
.addSVGDocumentLoaderListener((SVGDocumentLoaderListener) it.next());
}
documentLoader = nextDocumentLoader;
nextDocumentLoader = null;
documentLoader.run();
}
有兴趣的人我可以打电话给Batik's
< code > document loader . load document(URL URL,InputStream is)
将 setUseCaches 标志设置为 false。这不仅可以加载图像,还可以相应地将其从缓存中删除。虽然从某种意义上说,这不是最好的解决方案,因为JWS尊重我的HTTP标头会很好,但这种解决方法已经足够好了。
我有从我的网页生成的AJAX POST请求,可能有多个POST请求具有相同的POST数据。但是响应可能会有所不同,我希望确保我没有得到这些请求的缓存响应。我需要每个请求点击网页。 我假设对POST请求的响应不会被缓存,这对吗?
一直在我的 SSO 项目中集成 Kerberos 身份验证。遇到了一个奇特的场景。 我创建了一个新用户并为其附加了一个 SPN。按照这个问题的步骤进行操作,让一切正常。我的意思是:- Kinit用户名 - 然后输入密码给了我票已保存的消息。 kinit spn(int 格式为 HTTP/FQDN) - 然后输入密码给了我勾选的消息已保存。 过了一段时间,我决定再试一次,所以我使用了命令 从用户名分
问题内容: 好像我使用加载动态内容,结果缓存在浏览器中。 在QueryString中添加一些随机字符串似乎可以解决此问题(我使用),但这听起来像是一种hack。 还有其他方法可以做到这一点吗?或者,如果唯一字符串是实现此目标的唯一方法,则除之外还有其他建议吗? 问题答案: 我使用,这将避免冲突,除非您在同一毫秒内发生多个请求: 编辑: 这个答案已经好几年了。它仍然有效(因此我没有删除它),但是 现
我发现了与jQuery相关的类似问题。我的目标是找出如何防止jQueryMobile和PhoneGap中的缓存(我使用JSONP)。我正在进行一些ajax调用,动态地填充listview。我想在每次初始化页面(pageinit)时查询web服务。在我的android设备上,在新的查询之后,每次我进入页面时,数据都会添加到listview中。它不会删除,每次我访问页面时,我都会添加一个副本。我认为这
问题内容: 我正在使用PHP开发一个简单的网站。 开发配置: WAMP 生产配置: LAMP 在测试时,我更改了CSS文件,但是当我重新加载页面时,我的浏览器(不确定)仍使用旧的缓存CSS。 我进行了一些谷歌搜索,发现了已经尝试过的其他解决方案 在CSS末尾附加查询 使用(在Firefox中)强制获取资源 禁用Firefox缓存以及使用Firefox加载项。 当这些都不起作用时,我做了更多的谷歌搜
问题内容: 我正在从servlet提供图像。响应内容类型为image / jpeg。我发现从我的servlet请求的图像没有被缓存。如何使它们像文件图像请求通常那样被缓存?我尝试设置Cache- Control:public,但无济于事。 问题答案: 好的..看起来默认头字段应该启用缓存。我在另一个论坛上找到了解决方案。显然,您需要在响应中显式设置content- length。不知道为什么。我认