您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么用Servlet顯示圖片”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Servlet顯示圖片”吧!
在Servlet編程中用servlet做一個跟蹤圖片點擊技術,這個模塊挺大,這里說說用Servlet顯示圖片部分。先說說用Servlet顯示圖片的一個流程:
1. Servlet編程中設置response的輸出類型:
對應的語句--response.setContentType("image/gif;charset=GB2312") ,
response 便能輸出gif圖片,"image/gif;charset=GB2312"便是輸出類型,當然你可以輸出 "image/jpg;charset=GB2312"類型文件。
2. 實現Servlet顯示圖片之得到文件流:
servlet是以流的形式件圖片文件從服務器讀出,通過response將流發到瀏覽器的。
3. 實現Servlet顯示圖片之得到輸出流:
對應的語句--OutputStream output = response.getOutputStream(); 當然,處理圖片文件需要以二進制形式的流。
4. 實現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";
實現Servlet顯示圖片之設定輸出的類型
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"); //輸出圖片的類型的標志 int int_spec=Integer.parseInt(spec); if(spec==1) { String imagePath="/jfgg/b1.jpg"; //圖片相對web應用的位置 } else { String imagePath="/jfgg/b2.gif";
圖片相對web應用的位置
} OutputStream output = response.getOutputStream();//得到輸出流 if(imagePath.toLowerCase().endsWith(".jpg"))//使用編碼處理文件流的情況: { response.setContentType(JPG);//設定輸出的類型 //得到圖片的真實路徑 imagePath = getServletContext().getRealPath(imagePath);
得到圖片的文件流
InputStream imageIn = new FileInputStream(new File(imagePath)); //得到輸入的編碼器,將文件流進行jpg格式編碼 JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn); //得到編碼后的圖片對象 BufferedImage image = decoder.decodeAsBufferedImage(); //得到輸出的編碼器 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output); encoder.encode(image);//對圖片進行輸出編碼 imageIn.close();//關閉文件流 } 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];//緩沖字節數 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(); } }
***是如何調用,你可以簡單的映射一下servelt,我就將servet的名映射為ShowPic, 于是下代碼調用
﹤html﹥ ﹤body﹥ ﹤img src="ShowPic?spec=2"﹥﹤/a﹥ ﹤/body﹥ ﹤/html﹥
到此,相信大家對“怎么用Servlet顯示圖片”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。