自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談如何調(diào)用JSP讀取數(shù)據(jù)庫中圖片并顯示在頁面上

開發(fā) 后端
用JSP讀取數(shù)據(jù)庫中的圖片并顯示在頁面上,這看起來沒什么難得,但當初還真讓筆者遇到點問題,這里為大家簡單介紹下。

記得當年當當網(wǎng)推出時用JSP讀取數(shù)據(jù)庫是從Oracle里讀Blob圖片,顯示到頁面上以后怎么都是個紅叉子,無奈之下請教高人,答曰:這種事情一般用Servlet搞定比較好,因為JSP讀取數(shù)據(jù)庫終究會被翻譯成JAVA代碼然后編譯成class,你的JSP難免出現(xiàn)一些格式轉(zhuǎn)換什么的代碼,一旦污染到讀出來的image,則紅叉子在所難免了。

細想之下頓覺言之有理,Google之。果然發(fā)現(xiàn)很多朋友遇到過此問題,遂查之~,見有人說去掉全部空格就OK了,想想也對,就馬上給代碼凈身(可憐我里縮外進的完美代碼格式)~~

然后代碼成了這副模樣:

Java代碼

  1. <%@ page import="java.awt.image.BufferedImage"%>   
  2. <%@ page import="java.io.BufferedInputStream"%>   
  3. <%@ page import="java.io.IOException"%>   
  4. <%@ page import="java.sql.Connection"%>   
  5. <%@ page import="java.sql.ResultSet"%>   
  6. <%@ page import="java.sql.Statement"%>   
  7. <%@ page import="java.sql.Blob"%>   
  8. <%@ page import="oracle.sql.BLOB"%>   
  9. <%@ page import="javax.naming.InitialContext"%>   
  10. <%@ page import="javax.imageio.ImageIO"%>   
  11. <%@ page import="javax.sql.DataSource"%>   
  12. <%@ page import="javax.servlet.ServletOutputStream"%>   
  13. <%@ page import="com.sun.image.codec.jpeg.JPEGCodec"%>   
  14. <%@ page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%>   
  15. <%InitialContext ic=new InitialContext();   
  16. DataSource ds=(DataSource)ic.lookup("DSNAME");   
  17. Connection conn=null;   
  18. conn =ds.getConnection);   
  19. Statement stmt=null;BufferedInputStream inputimage=null;   
  20. stmt=conn.createStatement();   
  21. boolean defaultCommit=conn.getAutoCommit();   
  22. conn.setAutoCommit(false);   
  23. String photoId =request.getParameter("photo_id");   
  24. try{   
  25. ResultSet rs=stmt.executeQuery("SELECT * FROM TABLENAME WHERE sys_id='"+photoId+"'");   
  26. if(rs.next()){Blob blob=(Blob)rs.getBlob("photo");   
  27. long size=blob.length();   
  28. byte[] bs=blob.getBytes(1,(int)size);   
  29. response.setContentType("image/jpeg;charset=GB2312");   
  30. response.setHeader("Content-Transfer-Encoding","base64");   
  31. OutputStream out1=response.getOutputStream();   
  32. BufferedOutputStream bos=null;   
  33. bos=new BufferedOutputStream(out1);   
  34. bos.write(bs,0,bs.length);bos.close();   
  35. rs.close();   
  36. }   
  37. else   
  38. {   
  39. rs.close();   
  40. }}   
  41. finally{   
  42. conn.close();   
  43. }%>   

然后運行之~~,呵呵,調(diào)用JSP讀取數(shù)據(jù)庫中圖片并顯示在頁面上就這樣出來了~~~

【編輯推薦】

  1. 選擇JSP網(wǎng)站空間的三點注意事項
  2. 分析JSP后臺文件管理源代碼
  3. MySQL手冊中查到的JSP中文亂碼解決方法
  4. JSP中文亂碼問題的描述及解決方法
  5. 實例說明JSP打印報表的方法
責任編輯:彭凡 來源: 網(wǎng)易博客
相關(guān)推薦

2009-06-10 17:03:36

JSP動態(tài)生成

2009-07-07 14:56:33

JSP連接MySQL

2009-06-30 09:16:45

數(shù)據(jù)庫存儲JSP文件

2009-07-01 16:01:58

JSP數(shù)據(jù)庫

2009-07-14 18:13:36

Microsoft J

2009-07-06 15:57:56

獲取數(shù)據(jù)庫連接JSP

2009-07-03 10:52:33

MIDletJSP頁面

2009-05-08 09:17:48

動態(tài)數(shù)據(jù)庫圖片

2009-07-21 13:40:24

ASP.NET上傳圖片顯示圖片

2009-06-25 16:36:31

JBPM流程圖

2009-08-11 14:51:47

C#讀取Excel中數(shù)

2024-09-20 18:02:42

C#數(shù)據(jù)庫SQLite

2009-03-23 09:01:00

圖片存儲數(shù)據(jù)庫JSP

2009-07-02 09:25:41

JSP實現(xiàn)頁面跳轉(zhuǎn)

2009-03-05 10:10:52

餅圖數(shù)據(jù)庫JSP

2011-01-18 09:47:33

自增ID

2009-07-07 15:07:59

JSP上傳圖片

2009-07-07 11:18:59

JSP Servlet

2009-07-03 17:37:54

JSP數(shù)據(jù)庫

2009-06-29 17:09:49

JavaBeanJSP
點贊
收藏

51CTO技術(shù)棧公眾號