Jsp页面中关于客户端图片缓存的解决

    最近客户提出个挺搞笑的需求,要求在网上银行中加入一些客户的个性信息,比如上传头像图片、个性签名档、添加好友等等(感觉越来越不像是银行外围系统,而更像是交友社区,呵呵)
    首先的一个前提,为了保证客户信息的安全性,每个客户的头像都是用客户号MD5加密后形成一个新文件名上传至服务器的(如果直接用客户号为文件名标识每个人的个性头像,则我可以往前或往后推算客户号从而看到我想要了解客户的头像)。这种策略的话,每个客户对应的个性头像文件名是唯一且一定的。
    开发的过程中遇到如下问题:当客户上传图片后预览时,客户端浏览器会自动从缓存中读取图片,你新上传的头像文件虽然已经覆盖了服务器上的旧头像,但在浏览器端,客户仍然看到的是老头像。在网上查啊查,试了很多方法,什么提交表单时url加随机时间啊、给文件名后加一个随机数,预览后在删除随机数并覆盖旧文件拉,不过我个人感觉都不如下面的方法方便。
    BetterWay如下:
    在后台:double random = Math.random();
并把random变量塞回到返回页面
    Jsp页面上:<img align="left" src="images/<c:out value='${portrait}' /> ?<c:out value='${random}' />" />即可
   
    浏览器会认为你的图片2次的参数不一样即两个不同的图片,故会重新从服务器端读取图片,而不是缓存中的老图片。

你可能感兴趣的:(jsp,浏览器,idea)