解决web网页改变起引用的图片,刷新页面仍然显示之前的图片

主要是tomcat服务器上的缓存引起的,只要在更新图片的时候同时给缓存更新即可

我项目存放图片的文件夹路径 C:\Users\miaoz\workspace\book\WebContent\images

然后再tomcat服务器上有个缓存空间C:\Users\miaoz\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\book\images

当刷新页面时图片还是从缓存空间中取,所以才会导致更新图片还是显示之前的,这里应该同时给两个路径的图片进行更新

例如在我的项目中

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
        String bookinfo[] = {"","","","","","","",""};
        String imagid=new Connect(1).getimag_seq();
        int count=0;
        request.setCharacterEncoding("utf-8");
        DiskFileItemFactory factory = new DiskFileItemFactory();
        String path = request.getRealPath("/images");//这是缓存中图片的路径
        factory.setRepository(new File(path));
        //设置 缓存的大小,当上传文件的容量超过该缓存时,直接放到 暂时存储室
        factory.setSizeThreshold(1024*1024) ;
        ServletFileUpload upload = new ServletFileUpload(factory);
        try {
            List<FileItem> list = (List<FileItem>)upload.parseRequest(request);
            for(FileItem item : list){
                String name = item.getFieldName();
                if(item.isFormField()){
                    String value = item.getString() ;
                    bookinfo[count++]=value;
                    System.out.println(name+"-->"+value);
                }else{
                    String value = item.getName() ;
                    int start = value.lastIndexOf("\\");
                    String filename = value.substring(start+1);
                    request.setAttribute(name, filename);
                    String path1=path.substring(0,path.length()-75)+"\\book\\WebContent\\images";//这是真实项目的图片路径
                    System.out.println(path);
                    OutputStream out = new FileOutputStream(new File(path,imagid+".jpg"));
                    OutputStream out1 = new FileOutputStream(new File(path1,imagid+".jpg"));//这里同时打开两个stream,分别是缓存与真实路径
                    InputStream in = item.getInputStream() ;
                    int length = 0 ;
                    byte [] buf = new byte[1024] ;
                    while( (length = in.read(buf) ) != -1){
                        //同时将图像写入两个路径中
                        out.write(buf, 0, length);
                        out1.write(buf, 0, length);
                    }
                    in.close();
                    out.close();
                    out1.close();
                }
            }
        }catch (FileUploadException e) {
            e.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        }
       

原文地址:https://www.cnblogs.com/miaos/p/11029530.html

时间: 2024-08-01 17:30:20

解决web网页改变起引用的图片,刷新页面仍然显示之前的图片的相关文章

struts2 hibernate 在jsp页面上面显示多个图片

最近需要在一个jsp页面上面遍历出多个图片,平时做的比较多的是string integer等类型的遍历,图片是二进制的与原来常用的类型有很大的不同. BBFSeal.java public class BBFSeal { private Blob content; private String id; private String name; private BBFUseruser; private Blob imageSeal; public BBFSeal() { } public BBFS

解决window.history.go(-1)执行后不刷新页面的问题

在iphone上出现了window.history.go(-1)执行后不刷新页面的问题,安卓不会有这个问题. 解决方法为在返回后的页面加上: window.addEventListener('pageshow', function(e) { //如果检测到页面是从“往返缓存”中读取的,刷新页面 if (e.persisted) { window.location.reload(); } }); 原文地址:https://www.cnblogs.com/luoyihao/p/12665868.ht

Filter 解决web网页跳转乱码

为什么采用filter实现了字符集的统一编码 问题: 为什么会有字符集编码的问题呢?对于Java Web应用,使用Tomcat容器获取和传递的参数(request.getParameter())默认是iso8859-1编码格式,所以即使我们在页面统一使用中文编码GB2312,在request.getParameter()取得的参数仍会有乱码. 因此我们要对Tomcat获取的参数进行编码转换,采用request.setCharacterEncoding()与response.setCharacte

对于一个无线下拉加载图片的页面,如何给每个图片绑定事件

我们设定一种场景,如下代码,一个 中包含了若干个,而且还能继续增加.那如何快捷方便的为所有的绑定事件呢? <div id="div1"> <a href="#">a1</a> <a href="#">a2</a> <a href="#">a3</a> <a href="#">a4</a> </d

vue:解决使用param传参后,再次刷新页面会新增一个原有的tab

问题:在最近的项目中,我通过传递不同的参数,复用同一组件进行渲染,然而意外出现一个bug,就是当我重新刷新该页面时,会新增一个tab 原来的: 刷新页面后: 查阅资料后,发现该现象是由于通过params进行传递的参数引起的,params进行传参后再次刷新页面,参数丢失,导致fullpath不一致,从而新增了页面(而我使用的d2admin基于element-ui第三方框架) 解决方案:将params方式传参改为使用query传参,这样参数就不会因为刷新而丢失 参考: https://juejin.

jquery mobile上传图片完整例子(包含ios图片横向问题处理和C#后台图片压缩)

上传图片本身是个基本的小功能,但是到了移动端就不那么简单了,相信找到这篇文章的你一定有深深的同感. 本文实例是:在(移动端)页面中点击图片,然后选择文件,然后保存.使用Asp.net 难点一:后台获取不到FileUpload的文件 解决方案:在 form 中添加 enctype="multipart/form-data" data-ajax="false" 难点二:ios图片上传后显示为横向图片(ios横拍照片无此问题:Android无此问题) 解决方案:加载exi

同一个网页上切换显示不同的图片

把图片的浏览链接集中安排在图片的主页面里,当用户点击某个图片的链接就能在当前网页显示 css:代码 ul,li{margin: 0;padding: 0} body{font-family: "Helvetica","Arial","serif","微软雅黑";color:#333;background-color: #ccc; margin: 1px 10%} h1{color:#333;background-color:

将Web网页转化为用户控件

将Web网页转化成用户控件,需要进行以下操作: 1.在.asp(Web网页的扩展名)文件的HTML视图中,删除<html>.<head>.<body>以及<form>等标记. 2.将@Page指令修改为@Control,并将Codebehind属性修改成以.ascx.cs为扩展的文件.例如: 原Web网页中的代码如下: <%@ Page Language="C#" AutoEventWireup="ture" C

web标准:img图片在ie6下显示空白的bug解决方案

在进行页面的DIV+CSS排版时,遇到IE6(当然有时Firefox下也会偶遇)浏览器中的图片元素img下出现多余空白的问题绝对是常见的对于该问题的解决方法也是“见机行事”. 1.将图片转换为块级对象 即,设置img为“display:block;”.在本例中添加一组CSS代码:“#sub img {display:block;}”. 2.设置图片的垂直对齐方式 即设置图片的vertical-align属性为“top,text-top,bottom,text-bottom”也可以解决.如本例中增