您好,登錄后才能下訂單哦!
本篇內(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í)!
免責(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)容。