用JSP+Servlet實現二進位映像的動態顯示(節選)

來源:互聯網
上載者:User
public void doGet(HttpServletRequest request, HttpServletResponse response) 

throws ServletException, IOException { 

//在資料庫中照片的ID 

String PHOTOID = null; 

try { 

PHOTOID = request.getParameter("photoid"); 



catch(Exception e) { 

e.printStackTrace(); 



//串連資料庫,自訂的資料庫連接池管理類 

DBConnectionManager connMgr; 

connMgr = DBConnectionManager.getInstance(); 

Connection conn = connMgr.getConnection("comdb"); //屬性檔案中定義 

//用來儲存照片資料的緩衝區 

byte [] buf=null; 

//副檔名可以從資料庫得到,這裡直接指定為JPEG 

String photoname="jpeg"; 

try{ 

//根據ID尋找照片 

String searchSql="select photo from employee where id ="+PHOTOID; 

Statement stmt = conn.createStatement(); 

ResultSet RS_photo = stmt.executeQuery(searchSql); 

//將圖片資料讀入緩衝區 

if (RS_photo.next()){ 

buf = RS_photo.getBytes(1); 

}else 



buf = new byte[0]; 



}catch (Exception e){ 

//throw e; 



finally { 

connMgr.freeConnection("comdb", conn); 



//response.setContentType(CONTENT_TYPE); 

//告訴瀏覽器輸出的是圖片 

response.setContentType("image/"+photoname); 

//圖片輸出的輸出資料流 

OutputStream out = response.getOutputStream(); 

//將緩衝區的輸入輸出到頁面 

out.write(buf); 

//輸入完畢,清楚緩衝 

out.flush(); 



/**Clean up resources*/ 

public void destroy() { 





編譯後的Servlet getphoto.class也會自動放置在工程檔案的WEB-INF下的classes目錄下。 

2.3 JSP實現資料庫圖文資訊瀏覽 

成功建立好Servlet後,下一步要做的工作就是將原先的HTML標記: 

<img src="../image/"+RS_photo.getString(photo_fiield) width="100" height="80">加以修改,替換為Servlet標記。即可以將下面的標記寫於HTML或JSP中頁面中  

<img border="0" src="/servlet/getphoto?photoid=XXX&ts=AAAAA" >  

其中XXX是圖片的ID,AAAAA是時間戳記,用來防止圖片不重新整理。如果我們要瀏覽資料庫中的所有圖文資訊,可以加入適當的迴圈控制。在本文的樣本WEB應用程式中作者加入了簡單的表格控制來修飾輸出的圖文資訊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.