溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用Servlet顯示圖片

發(fā)布時(shí)間:2021-12-27 17:56:12 來源:億速云 閱讀:528 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“怎么用Servlet顯示圖片”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用Servlet顯示圖片”吧!

在Servlet編程中用servlet做一個(gè)跟蹤圖片點(diǎn)擊技術(shù),這個(gè)模塊挺大,這里說說用Servlet顯示圖片部分。先說說用Servlet顯示圖片的一個(gè)流程:

1. Servlet編程中設(shè)置response的輸出類型: 

對應(yīng)的語句--response.setContentType("image/gif;charset=GB2312") ,

response 便能輸出gif圖片,"image/gif;charset=GB2312"便是輸出類型,當(dāng)然你可以輸出 "image/jpg;charset=GB2312"類型文件。

2. 實(shí)現(xiàn)Servlet顯示圖片之得到文件流:

servlet是以流的形式件圖片文件從服務(wù)器讀出,通過response將流發(fā)到瀏覽器的。

3. 實(shí)現(xiàn)Servlet顯示圖片之得到輸出流:

對應(yīng)的語句--OutputStream output = response.getOutputStream(); 當(dāng)然,處理圖片文件需要以二進(jìn)制形式的流。

4. 實(shí)現(xiàn)Servlet顯示圖片之文件流的編碼(但也不一定必須編碼的,如果不是文件流,則必須編碼) 所以我給大家一個(gè)用編碼的代碼和不用編碼的代碼.

順便說一句,sun公司僅提供了jpg圖片文件的編碼api。

我想基本流程都講完了,下面我把代碼拿給大家看一下,大家自然一目了然了:

package xjw.personal.servet;  import java.io.*;  import javax.servlet.*;  import javax.servlet.http.*;  import com.sun.image.codec.jpeg.*;

Sun公司僅提供了jpg圖片文件的編碼api

import javax.imageio.stream.*;  import java.awt.*;  import java.awt.image.BufferedImage;  public class ShowPicture  extends HttpServlet{       private static final String GIF="image/gif;charset=GB2312";

實(shí)現(xiàn)Servlet顯示圖片之設(shè)定輸出的類型   

private static final String JPG="image/jpeg;charset=GB2312";       public void init()    throws ServletException     {     }       public void doGet(HttpServletRequest request, HttpServletResponse response)                    throws IOException, ServletException       {        doPost(request, response);     }      public void doPost(HttpServletRequest request, HttpServletResponse response)                   throws IOException, ServletException     {                  String spec=request.getParameter("spec");  //輸出圖片的類型的標(biāo)志   int int_spec=Integer.parseInt(spec);          if(spec==1)            {              String imagePath="/jfgg/b1.jpg";  //圖片相對web應(yīng)用的位置        }          else        {                String imagePath="/jfgg/b2.gif";

圖片相對web應(yīng)用的位置     

  }                     OutputStream output = response.getOutputStream();//得到輸出流         if(imagePath.toLowerCase().endsWith(".jpg"))//使用編碼處理文件流的情況:         {     response.setContentType(JPG);//設(shè)定輸出的類型            //得到圖片的真實(shí)路徑                  imagePath = getServletContext().getRealPath(imagePath);

得到圖片的文件流   

InputStream imageIn = new FileInputStream(new File(imagePath));           //得到輸入的編碼器,將文件流進(jìn)行jpg格式編碼       JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);         //得到編碼后的圖片對象           BufferedImage image = decoder.decodeAsBufferedImage();   //得到輸出的編碼器    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);             encoder.encode(image);//對圖片進(jìn)行輸出編碼            imageIn.close();//關(guān)閉文件流       }          if(imagePath.toLowerCase().endsWith(".gif"))//不使用編碼處理文件流的情況:         {    response.setContentType(GIF);    ServletContext context = getServletContext();//得到背景對象       InputStream imageIn=context.getResourceAsStream(imagePath);//文件流           BufferedInputStream bis=new BufferedInputStream(imageIn);//輸入緩沖流       BufferedOutputStream bos=new BufferedOutputStream(output);//輸出緩沖流      byte data[]=new byte[4096];//緩沖字節(jié)數(shù)       int size=0;     size=bis.read(data);      while (size!=-1)    {         bos.write(data,0,size);              size=bis.read(data);    }      bis.close();    bos.flush();//清空輸出緩沖流           bos.close();    }        output.close();    }  }

***是如何調(diào)用,你可以簡單的映射一下servelt,我就將servet的名映射為ShowPic,  于是下代碼調(diào)用

﹤html﹥    ﹤body﹥    ﹤img src="ShowPic?spec=2"﹥﹤/a﹥  ﹤/body﹥  ﹤/html﹥

到此,相信大家對“怎么用Servlet顯示圖片”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI