真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用Servlet顯示圖片

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

黃驊網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,黃驊網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為黃驊近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的黃驊做網(wǎng)站的公司定做!

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

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. 實現(xiàn)Servlet顯示圖片之得到文件流:

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

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

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

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

順便說一句,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";

實現(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è)定輸出的類型            //得到圖片的真實路徑                  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顯示圖片”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)頁標(biāo)題:怎么用Servlet顯示圖片
當(dāng)前路徑:http://weahome.cn/article/pseeep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部