`
huangyongxing310
  • 浏览: 490638 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

img 显示response图片数据

    博客分类:
  • Java
 
阅读更多
http://blog.csdn.net/ykf69177/article/details/8655881

<script type="text/javascript">  
    loadImg=function(){  
        document.getElementById("img").src="servlet/IdentityServlet?ts="+new Date().getTime();  
    }  
 </script>  
   
 <body>  
   <img src="servlet/IdentityServlet" id="img" onclick="loadImg()"/>  
 </body>  



//想要返回图片的路径  
FileInputStream fis = new FileInputStream("/Users/kun/Desktop/ServerImage/lxj12345.jpeg") ;  
//得到文件大小  
int size = fis.available();  
byte data[] = new byte[size] ;  
fis.read(data) ;  
fis.close();  
          
//设置返回的文件类型  
response.setContentType("image/jpeg");  
OutputStream os = response.getOutputStream() ;  
os.write(data);  
os.flush();  
os.close();  



public class IdentityServlet extends HttpServlet {  
  
    /** 
     * The doGet method of the servlet. <br> 
     * 
     * This method is called when a form has its tag value method equals to get. 
     *  
     * @param request the request send by the client to the server 
     * @param response the response send by the server to the client 
     * @throws ServletException if an error occurred 
     * @throws IOException if an error occurred 
     */  
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
  
        response.setContentType("image/jpeg"); //设置输出类型  
          
        String randomString = getRandomStr(); //获取随机字符串  
        request.getSession(true).setAttribute("randomString", randomString);  
          
        int width =100,height=30; //设置图片宽高  
          
        Color color = getRandomColor(); //背景色  
        Color reverse = getReverseColor(color); //反色,用于前景色  
          
        BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //创建一个彩色图片  
          
        Graphics2D graph = bi.createGraphics(); //获取绘图对象  
        graph.setFont(new Font(Font.SANS_SERIF,Font.BOLD,16)); //设置字体  
        graph.setColor(color); //绘制颜色  
        graph.fillRect(0, 0, width, height); //绘制背景  
        graph.setColor(reverse); //绘制颜色  
        graph.drawString(randomString, 18, 20); //绘制随机字符串  
          
        /** 
         * 绘制噪音点 
         */  
        for(int i = 0; i<100; i++){  
            graph.drawRect(random.nextInt(width),random.nextInt(height), 1,1);  
        }  
          
        ServletOutputStream out = response.getOutputStream(); //转换成JPEG格式  
        JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out); //编码器  
        encoder.encode(bi);  
          
        out.flush();  
    }  
  
    /** 
     * The doPost method of the servlet. <br> 
     * 
     * This method is called when a form has its tag value method equals to post. 
     *  
     * @param request the request send by the client to the server 
     * @param response the response send by the server to the client 
     * @throws ServletException if an error occurred 
     * @throws IOException if an error occurred 
     */  
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
  
        doGet(request,response);  
    }  
  
    public static char[] CHARS ={  
        //'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',  
        'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',  
        '0','1','2','3','4','5','6','7','8','9'}; //随机字符字典  
      
    private Random random = new Random(); //随机数对象  
      
    /** 
     * 获取6位随机数 
     * @return 
     */  
    private String getRandomStr(){  
        StringBuffer buffer = new StringBuffer();  
        for(int i=0;i<6;i++){  
            buffer.append(CHARS[random.nextInt(CHARS.length)]);  
        }  
        return buffer.toString();  
    }  
      
    /** 
     * 获取随机的颜色 
     * @return 
     */  
    private Color getRandomColor(){  
        return new Color(random.nextInt(255),random.nextInt(255),random.nextInt(255));  
    }  
      
    /** 
     * 返回某颜色的反色 
     * @param color 
     * @return 
     */  
    private Color getReverseColor(Color color){  
        return new Color(255-color.getRed(),255-color.getGreen(),255-color.getBlue());  
    }  
}  











分享到:
评论

相关推荐

    vue解析后端返回的二维码图片数据流

    问题场景: 后端返回图片数据流,打印结果是乱码,如下: ...但是把生成的URL链入img的src后仍然显示不出来,在查资料后知道还需设置responseType为blob才行,代码如下: const QRCode = await this.$swag

    Node.js-term-img-在你的终端显示图片

    在这个例子中,我们首先使用 axios 获取图片的二进制数据,然后将其传递给 `term-img` 的 `buffer` 方法来显示。 在压缩包文件 "sindresorhus-term-img-8fb3348" 中,我们可以看到该库的一个特定版本。sindresorhus...

    SpringMVC生成的验证码图片不显示问题及解决方法

    "SpringMVC生成的验证码图片不显示问题及解决方法" 知识点1: SpringMVC验证码图片生成 在SpringMVC中,生成验证码图片需要使用@Controller注解的Controller类,通过@RequestMapping注解的方法来处理验证码图片的...

    二进制流形式上传图片,然后前台显示图片示例(vs2005+sql2005)

    在Handler中,读取数据库中的二进制数据,设置响应的MIME类型为"image/jpeg"或相应的图片格式,然后将二进制数据写入到Response.OutputStream中。 六、前端HTML和JavaScript 在前端HTML页面中,使用`&lt;img&gt;`标签...

    java实现本地读取图片存储到数据库中并在html网页显示

    在Java后端,创建一个处理请求的Controller方法,查询数据库并将图片数据返回给前端。 4. **在HTML中显示图片**: 前端接收到图片的二进制数据后,可以通过`Blob`和`URL.createObjectURL()`将数据转化为URL,然后...

    在java web中显示存入mysql数据库的图片

    为了在网页上显示这些存储在数据库中的图片,我们需要创建一个Servlet,如`ShowImageServlet.java`,从数据库中检索图片数据并返回给客户端: ```java // 获取图片ID String id = request.getParameter("id"); // ...

    传送图片至FTP及显示FTP上图片

    本教程将详细介绍如何将图片传输到FTP服务器以及如何在FTP服务器上显示这些图片。 首先,我们需要理解FTP的基本工作原理。FTP使用客户端-服务器模型,其中客户端(你的计算机)连接到服务器并发送文件请求。在传输...

    如何将图片转换成二进制存储

    需要注意的是,在输出图片数据之前,需要设置`Response.ContentType`为正确的图片格式,以便浏览器能够正确解析并显示图片。 #### MIME类型的设置 除了处理图片数据之外,我们还需要了解如何设置MIME类型。MIME...

    jquery 上传图片显示

    这段代码中,`FileReader` 对象用于读取选中的文件,并在读取完成后通过 `onload` 事件将图片数据转换为 Base64 编码,然后设置到 `&lt;img&gt;` 的 `src` 属性,实现图片预览。如果用户选择的不是图片文件,会弹出警告。 ...

    通过文件流读取本地图片显示在JSP页面方法

    本例中使用了`multipart/form-data`作为响应的内容类型,这种类型通常用于上传文件等场景,可以确保图片数据被正确传输。 #### 三、代码分析 ##### 3.1 获取请求参数 ```java HttpServletRequest request = ...

    jsp连数据库动态显示图片

    这个过程涉及多个关键知识点,包括数据库连接、SQL查询、JSP内置对象以及图片数据的处理。 首先,我们需要建立数据库连接。在Java中,通常使用JDBC(Java Database Connectivity)API来连接数据库。这包括加载...

    如何向Access数据库上传且显示图片

    最后,需要设计图片显示程序,使用ASP语言编写,主要功能是从数据库中读取图片数据并显示出来。下面是该程序的代码: ``` set connGraph=server.CreateObject("ADODB.connection") connGraph.Open "Provider=...

    spring boot实现上传图片并在页面上显示

    然后在Thymeleaf页面中,通过`&lt;img&gt;`标签引用这个路径来显示图片: ```html &lt;img th:src="@{/images/fileName.jpg}" alt="上传的图片" /&gt; ``` 5. **安全性考虑** 在实际应用中,要注意安全性问题,如文件名的...

    简单的servlet+jsp图片上传并显示图片解压就可用

    在本文中,我们将深入探讨如何使用Servlet和JSP实现一个简单的图片上传并显示的功能。Servlet是一种Java编程技术,常用于扩展服务器的功能,处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页技术,可以方便...

    将硬盘上不在项目内的图片显示在页面上

    这个URL指向了服务器上处理图片流的特定端点,客户端通过这个URL向服务器发出请求,服务器则响应并将图片数据返回,从而实现在页面上显示硬盘上不在项目内的图片。 此外,`&lt;img&gt;`标签还包含了`style`属性,用于设置...

    ASP上传图片到MDB并显示

    接下来,我们将图片数据保存到Access数据库。Access数据库支持BLOB(Binary Large Object)类型的字段来存储非结构化数据,如图片。我们需要创建一个包含BLOB字段的表,比如命名为"Images",字段名为"ImageData"。在...

    struts下上传图片到数据库并显示到页面实例

    这可能涉及到创建一个新的Action或者在现有Action中添加一个新方法,该方法将查询数据库获取图片数据,并将其发送到响应。 ```java public void displayImageFromDatabase(ActionMapping mapping, ActionForm form,...

    ASP+ACCESS图片上传入库并显示

    在ASP页面中,我们需要处理文件上传的逻辑,包括验证文件类型、大小等,然后将图片数据存入数据库。Access数据库通常不支持直接存储二进制大数据,所以我们通常会将图片文件保存到服务器的某个目录,然后在数据库中...

    如何把图片上传到数据库中并显示出来?.doc

    在上面的代码中,我们使用了ADODB.Connection和Recordset对象来从数据库中读取图片数据,然后使用Response.BinaryWrite方法将图片输出到浏览器中。 数据库结构 最后,我们需要了解数据库结构。我们使用Access...

    js悬停图片显示文字内容

    // fetch(img.src.replace('.jpg', '.json')) // 假设存在与图片关联的JSON数据 // .then(response =&gt; response.json()) // .then(data =&gt; content.innerHTML = data.description); }); document.getElementById...

Global site tag (gtag.js) - Google Analytics