JSP页面img图片缓存问题现象表述及问题解决
l 问题表述:
当对含有头像的客服人员信息进行修改(含对头像信息的修改)后,重新打开数据修改界面,发现文本内容修改成功,而头像内容仍然显示为原来的头像——数据库中的对应信息头像所在字段数据已经成功更新。
l 前提:
jsp页面中进行了页面缓存清除处理:
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
当然,下边3行代码功能与上边的3行功能相同,页面中仅写一份
<%
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
%>
l 问题情景再现:
原jsp中img src写法:
<img src="<%=path%>/servlet/customer/personPic?cspId=${cspId}"></img>
要修改的数据界面:
修改数据后,再次进入此条数据的修改界面:
发现虽然其它文本字段都进行了相应修改,但是“头像”部分并没有修改为我们指定的图片(如下图,头像仍然显示为一个“叉”的形状)
查询数据库,发现数据库中的头像对应的blob字段中的数据已经更改为指定的图片。
l 问题解决(共两步):
(1)修改servlet:在进行数据读取的servlet中增加图片随机数代码
//图片随机数
double randomNum = Math.random();
request.setAttribute("randomNum", randomNum);
(2)更新前台数据修改jsp:图片显示img标签的src中增加“randomNum”参数
<img src="<%=path%>/servlet/customer/personPic?cspId=${cspId}&randomNum=${randomNum}"></img>
重新打开同一人员的数据修改界面——成功显示刚才更新过的图片!!
l 原理:
由于在img的src中增加了随机数参数,多次访问图片时,浏览器认为是访问了不同的图片路径(或者说是访问了不同的图片),浏览器会每次重新访问服务器读取图片,而不再读取缓存中的图片。
相关参考:
Jsp页面中关于客户端图片缓存的解决
http://damiao-cn.javaeye.com/blog/371216
JSP解决图片缓存问题
http://wuaner.javaeye.com/blog/395443
相关推荐
### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...
本文将详细介绍如何解决HTML、JSP页面在模态窗口中的缓存问题。 #### 一、理解页面缓存机制 页面缓存主要由浏览器完成,其目的是为了加快页面加载速度。浏览器缓存分为两种类型:强制缓存和协商缓禁。 1. **强制...
总结来说,"jsp 页面缓存"是一个涉及到Web性能优化的关键概念。通过合理地设置和利用缓存,我们能够显著提升JSP页面的加载速度,减少服务器压力,并提供更好的用户体验。在实际开发中,应根据应用的具体需求选择合适...
综上所述,当遇到JSP页面图片上传成功但不刷新的情况,通过添加随机参数来避免浏览器缓存问题,是一种常见且有效的解决方案。开发者需要在实际操作过程中,注意细节的准确性,以保证程序的正确执行。
综上所述,解决"jsp页面加载时提示loading"的问题需要从多方面进行排查和优化,包括页面内容优化、服务器性能提升、网络条件改善、代码错误检查、缓存策略调整、服务器配置优化、数据库性能优化、AJAX请求优化、...
JSP页面缓存是提高网站性能和响应速度的有效手段,它通过存储已处理过的JSP页面结果来避免每次请求时都重新执行JSP页面的编译和执行过程。本资源"JSP页面缓存的简单实现 (可用于 content-type 为字符类型的JSP页面...
理解这些阶段有助于优化性能和解决问题。 3. **MVC设计模式**: JSP通常与Servlet和JavaBean结合使用,实现MVC(Model-View-Controller)架构,分离业务逻辑、视图呈现和用户交互控制。 4. **JSP内置对象**: - ...
提升 JSP 页面响应速度的七大秘籍绝招 本文将介绍七大秘籍绝招,以提升 JSP 页面响应速度,提高系统性能。这些秘籍绝招涵盖了 JSP 页面的生命周期、Servlet 的 init() 方法、自动重载功能、HttpSession 的使用、...
4. **使用其他编辑器或IDE**:如果尝试上述方法都无法解决问题,可以考虑切换到其他支持JSP和JSTL的编辑器,如IntelliJ IDEA或Eclipse,看是否同样存在此问题。 5. **检查代码结构**:确认`<c:if>`标签的关闭标签`...
JSP页面的缓存主要包括两方面:一是服务器端对JSP编译后的Servlet的缓存;二是客户端浏览器对JSP渲染后HTML页面的缓存。这两种缓存方式对于提升用户体验和减轻服务器压力都至关重要。 1. **服务器端缓存**:当JSP...
JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。 一、JSP 页面设置...
- 静态化后的页面更新问题:当后台数据变化时,需要及时更新对应的静态页面,否则可能会显示过期信息。 - 缓存管理:静态页面可能需要缓存控制策略,以平衡性能和资源消耗。 - 安全性:静态化可能暴露出原本动态...
而动作(如`<jsp:include>`、`<jsp:forward>`和`<jsp:param>`)则用于动态地操作页面内容。确保正确理解和使用这些元素可以避免很多问题。 3. **EL(Expression Language)**: EL是一种简化在JSP中访问JavaBean...
综上所述,IE页面缓存问题的解决不仅仅依赖于一种方法,而是需要结合JSP、Servlet以及HTML中的多种策略。通过合理设置响应头和HTML元信息,可以有效地控制页面的缓存行为,确保用户始终能够接收到最新的数据和最准确...
2. 开发阶段就进行多语言测试,尽早发现并解决问题。 3. 使用版本控制工具,确保团队成员对编码设置有统一的认识。 4. 对于用户提交的数据,始终使用标准的字符集进行处理,避免直接拼接字符串。 5. 在数据库设计...
3. 解析JSP:使用JSP的`RequestDispatcher.include()`或`JspRuntimeLibrary.include()`方法,将JSP页面包含进来并执行,得到HTML字符串。 4. 生成HTML:将HTML字符串写入到一个新文件中,文件名通常是JSP文件名加上....
### 解决JSP页面中文乱码问题 #### 一、问题背景 在使用JSP(Java Server Pages)技术开发Web应用程序的过程中,经常会遇到中文乱码的问题。特别是在接收表单提交的数据或者显示数据库查询结果时,中文字符可能会...
在jsp登录页面设计中,我们使用<jsp:forward>标签来实现页面跳转。例如,在上面的代码中,我们使用<jsp:forward>标签来跳转到main.jsp页面。 8. 数据库访问: 在实际应用中,我们需要使用数据库来存储用户的信息,...
在JSP中,`<jsp:include>`标签是用于在页面间进行内容包含的,但有时可能会遇到“乱码”问题,这通常涉及到字符编码的处理。本文将详细解析JSP `include` 乱码问题的成因以及解决方法。 首先,我们要理解乱码产生的...