当前位置: 代码迷 >> Java Web开发 >> 【求助】servlet传来的图片不显示
  详细解决方案

【求助】servlet传来的图片不显示

热度:136   发布时间:2009-11-07 09:41:29.0
【求助】servlet传来的图片不显示
    本地F盘有一个“Picture“文件夹,文件夹里有10张图片,依次命名为0.jpg、1.jpg、3.jpg……9.jpg。我想实现点击按钮随机切换图片的功能,将0~9间的随机数(num)作为参数传到servlet,然后在servlet中读取图片并输出。在前台将<img />的src属性指定为servlet路径来显示图片。但是图片显示不出来,不知哪里出了问题,向各位高手求教,万分感谢!
    html部分:
    <input type="button" value="Show“ onlick="getImage()" />
    <img id="image" src="" style="display:none" />
    javascript部分:
    function getImage(){
        var num=Math.floor(Math.random()*10);    //获得1~9的随机数
      var xmlhttp;
        xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
      xmlhttp.open("get","servlet/PictureServlet?num="+num+"&time="+new Date().getTime(),true);  
      xmlhttp.send(null);
      xmlhttp.onreadystatechange=function(){
            if(xmlhttp.readyState==4 && xmlhttp.status==200){
                document.getElementById("image").style.display="block";    //响应完毕后,将图片设为“显示”状态
             document.getElementById("image").src="http://localhost:8080/Picture/servlet/PictureServlet";
            }
        }
    }
    servlet部分:
    response.setContentType("image/jpeg");
    int num=Integer.parseInt(request.getParameter("num"));    //获取参数
    String url="F:\\Picture\\"+num+".jpg";    //图片文件路径
    FileInputStream hFile=new FileInputStream(url);    //创建读取流
    int length=hFile.available();    //获得这个文件流的长度
    byte[] b=new byte[length];    //创建一个长度等于文件流长度的二进制数组
    hFile.read(b);    //读取二进制数据,存入数组
  hFile.close();    //关闭文件流
    OutputStream out=response.getOutputStream();    //获得向客户端输出二进制数据的对象
    out.write(b);    //输出数据
    out.close();    //关闭输出对象
搜索更多相关主题的帖子: servlet  

----------------解决方案--------------------------------------------------------
显示不是Servlet强项,一般用JSP来显示
----------------解决方案--------------------------------------------------------
建议换一个浏览器试试,其实不是什么大问题,以前记得IE是有点问题,在FF中试试;
同意2楼的看法,这个工作是应该交给JSP去做;
还有就是你那个IO的操作,像这种流之间的交互,建议还是使用nio中的channle,更好。
----------------解决方案--------------------------------------------------------
同意2楼的看法,这个工作是应该交给JSP去做;
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案