練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

如何將.jsp檔案輸出成圖片? RSS feed
討論區首頁 » 網頁程式設計 Web Development
發表人 內容
viva

八級學員
[Avatar]

註冊時間: 2008/8/21
文章: 24
來自: 台北
離線
這URL會連到一個動態的圖片 http://目錄名/A.jsp

有辦法將A.jsp當成是圖片檔,然後包含到B.jsp中輸出嗎?
假設我在B.jsp這檔案裡,有辦法使用如下的方法嗎?
<table>

<tr>
<td><img src="http://目錄名/A.jsp "></td>
</tr>
</table>


JavaScript
<script language='JavaScript' type='text/javascript' src='http://目錄名/A.jsp '></script>

HTML
<iframe frameborder='0' width='180' height='800' src='http://目錄名/A.jsp '></iframe>
如果不使用JavaScript及iframe ,還有其他方法可以做到如上兩段程式一樣的功能嗎?
[Email]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
可以參考這一篇
A simple way to display database blob stored image in a jsp
要注意的重點就是,
1.JSP頁面內不能有文字輸出,要全部用<% ... %>包圍起來,不能有HTML的標籤被輸出。
2.ContentType要設定為image/gif, image/jpeg, ...。
3.重新由response取得OutputStream,因原本的out物件是屬於文字輸出型的。

// get the image from any source
byte[] imgData = getYourImage();
// display the image
response.setContentType("image/gif");
OutputStream o = response.getOutputStream();
o.write(imgData);
o.flush();
o.close();

分享經驗 累積智慧
[WWW]
viva

八級學員
[Avatar]

註冊時間: 2008/8/21
文章: 24
來自: 台北
離線
請教一下....測試程式有3個 test1.jsp , test2.jsp , test3.jsp
test1.jsp(已排版好的動態圖片)
<table align="center">

<tr><td align="center"><img src="http://xxxxxx.gif"></td></tr>
<tr><td align="center">測試1</td></tr>
<tr><td align="center"><img src="http://xxxxxx.gif"></td></tr>
<tr><td align="center">測試2</td></tr>
</table>


test2.jsp (發送GIF檔案給瀏覽器)
<%@ page import="java.io.*" %>

<%@ page import="java.util.*" %>
<%
response.setContentType("image/gif");
File f = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\ROOT\\test1.jsp");
byte[] b = new byte[(int)f.length()];
FileInputStream fis = new FileInputStream(f);
fis.read(b);

OutputStream os = response.getOutputStream();
os.write(b);
os.flush();
%>

test3.jsp
<%@ page contentType="text/html; charset=Big5" %>

<table>
<tr>
<td><img src="http://localhost:8080/test.jsp"></td>
</tr>
</table>


測試時,連到http://localhost:8080/test2.jsp 可以看到test1.jsp的圖檔
但連到http://localhost:8080/test3.jsp 卻無法顯示圖片
連到test2.jsp 可以看到圖片的話不就代表test2.jsp是以GIF檔回應給瀏覽器
為何在test3.jsp使用<img src="xxx.jsp">卻無法顯示?
[Email]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
test2.jsp內的第五行
File f = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\ROOT\\test1.jsp");

要改成
File f = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\ROOT\\images\\xxx.gif");


test3.jsp的第四行應修正為:
<td></td>

分享經驗 累積智慧
[WWW]
viva

八級學員
[Avatar]

註冊時間: 2008/8/21
文章: 24
來自: 台北
離線
感謝指導!!
test2.jsp內的第五行改為.gif檔後,在test3.jsp可以由<img src="http://localhost:8080/test2.jsp">顯示


但因test1.jsp裡,圖片不只一張,而且還有JAVA語言去做動態圖片的選擇!

所以在test2.jsp內的第五行一定只能讀.gif檔嗎? 沒辦法讀整個test1.jsp檔嗎?
File f = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\ROOT\\images\\xxx.gif");




[Email]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
請先確認test3.jsp一次要顯示幾張圖?這些圖放在哪邊?然後跟test1.jsp有什麼關係?
也許你需要的只是在test3.jsp中使用<jsp:include page="test1.jsp" />

分享經驗 累積智慧
[WWW]
viva

八級學員
[Avatar]

註冊時間: 2008/8/21
文章: 24
來自: 台北
離線
其實主要要使用的語法就只有<img src="http://xxxx/test1.jsp">
test3.jsp只是測試時我想看結果而已!
圖的話,在伺服器上,用http://xxxxx/.gif去使用!
而test1.jsp是經由某個介面輸入要顯示幾張圖片後而出現的結果!!
其實就是個圖片工具而已,只是有些網站限制了Javascript跟iframe
所以才想用<img src="http://xxxx/test1.jsp">的方法!!

請問...
我把test1.jsp整個HTML TAG存在StringBuffer裡,轉為String後再讀出byte!
再利用前述方法response.setContentType("text/html;charset=BIG5");傳回HTML

在前述例子可用<img src="http://xxx/test2.jsp">顯示出來!
那有相關方法可以使用TAG秀出http://xxx/test4.jsp的HTML的嗎?

test4.jsp
<%@ include file="inc_common_parameters.jsp" %>

<%@ include file="inc_common_fun_doc.jsp" %>
<%
response.setContentType("text/html;charset=BIG5");
HttpUtil a = new HttpUtil();
StringBuffer sb = null;
try {
sb = a.doPost("http://xxx/test1.jsp", "", "UTF-8");//傳回整個htm放到sb
String sb_t = sb.toString();
byte[] b = sb_t.getBytes();
OutputStream os = response.getOutputStream();
os.write(b);
os.flush();
} catch(Exception e) {
out.println(e.getMessage());
}



[Email]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
不知道您的需求是不是如下:
網站A,動態產生廣告圖片網頁test1.jsp,內容為文字HTML標籤
網站B,只能放HTML的靜態網頁空間,想要將網站A的test1.jsp的結果顯示在一個網頁,例如showTest1.html上
可行的作法是在網站B上使用<frame>或<iframe>或者<javascript>的src屬性去設定來源URL為網站A的test1.jsp
現在您是指,如果不使用上面這幾個標籤時,可以改用img的src屬性來達成嗎?

分享經驗 累積智慧
[WWW]
viva

八級學員
[Avatar]

註冊時間: 2008/8/21
文章: 24
來自: 台北
離線
andowson wrote:
網站A,動態產生廣告圖片網頁test1.jsp,內容為文字HTML標籤
網站B,只能放HTML的靜態網頁空間,想要將網站A的test1.jsp的結果顯示在一個網頁,例如showTest1.html上
可行的作法是在網站B上使用<frame>或<iframe>或者<javascript>的src屬性去設定來源URL為網站A的test1.jsp


是的,你說明是我原本的作法....我的疑問也是您所說的,是否可改用img的src屬性來達成?

我在想乾脆用img src="http://............檔名.jsp",前端連結固定
然後利用後端程式與資料庫來做出動態效果....只不過有點麻煩!code也要重寫,所以想請教是否還有其他方法?

因已有現成且處理好的程式(網站A),也有程式可以讀取網站A的HTML程式碼(test4.jsp)
那該怎麼在網站B的靜態網頁空間中顯示出來?

[Email]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
有種方法,不知道管不管用,做張網頁截圖,例如
image
可以利用下列網址產生
http://ppt.cc/yo2/index.php
然後你再將該截圖抓回來放到你的網站上去
再把img src的來源指到你的網站上

分享經驗 累積智慧
[WWW]
viva

八級學員
[Avatar]

註冊時間: 2008/8/21
文章: 24
來自: 台北
離線
哇賽....那個快照網站好屌喔!原來還有那種東西....

剛試了一下,發覺那個是用靜態網頁
我的圖片工具,圖片全部都動態的,畫面會自行跳動,所以快照不適合!

我後來想想,還是使用你指導的,順便夾帶個參數<img src="http://xxxx/test2.jsp?TYPE=參數">
然後再從test2.jsp裡去判斷參數多少,然後給予相對應的圖片!!

最傷腦筋的就是排版......呼!!

謝謝andowson大力指導^^
[Email]
 
討論區首頁 » 網頁程式設計 Web Development
前往:   
行動版