練功房推薦書單

  • Google!Android 3手機應用程式設計入門(第四版)
  • 賈伯斯傳(軟皮精裝版)
  • 猛虎出閘制霸版:最新OCP Java SE 6 Programmer專業認證(附原始程式碼及範例檔)
  • SCWCD 5 猛虎出閘:Java Web 應用程式專業認證
如何將.jsp檔案輸出成圖片?  XML
Forum Index » 網頁程式設計 Web Development
Author Message
viva

八級學員
[Avatar]

Joined: 2008-08-21 12:54:06
Messages: 24
Location: 台北
Offline

這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 ,還有其他方法可以做到如上兩段程式一樣的功能嗎?

This message was edited 3 times. Last update was at 2008-10-17 16:14:37

[Email]
andowson

六段學員
[Avatar]

Joined: 2007-01-02 22:20:40
Messages: 652
Location: 台北
Offline

可以參考這一篇
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] [MSN]
viva

八級學員
[Avatar]

Joined: 2008-08-21 12:54:06
Messages: 24
Location: 台北
Offline

請教一下....測試程式有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">卻無法顯示?

This message was edited 1 time. Last update was at 2008-10-19 11:50:11

[Email]
andowson

六段學員
[Avatar]

Joined: 2007-01-02 22:20:40
Messages: 652
Location: 台北
Offline

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><img src="http://localhost:8080/test2.jsp"></td>

This message was edited 1 time. Last update was at 2008-10-19 19:56:29


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

八級學員
[Avatar]

Joined: 2008-08-21 12:54:06
Messages: 24
Location: 台北
Offline

感謝指導!!
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"); 




This message was edited 2 times. Last update was at 2008-10-20 12:27:03

[Email]
andowson

六段學員
[Avatar]

Joined: 2007-01-02 22:20:40
Messages: 652
Location: 台北
Offline

請先確認test3.jsp一次要顯示幾張圖?這些圖放在哪邊?然後跟test1.jsp有什麼關係?
也許你需要的只是在test3.jsp中使用<jsp:include page="test1.jsp" />

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

八級學員
[Avatar]

Joined: 2008-08-21 12:54:06
Messages: 24
Location: 台北
Offline

其實主要要使用的語法就只有<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());
	}



This message was edited 2 times. Last update was at 2008-10-20 16:38:03

[Email]
andowson

六段學員
[Avatar]

Joined: 2007-01-02 22:20:40
Messages: 652
Location: 台北
Offline

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

This message was edited 1 time. Last update was at 2008-10-20 19:47:24


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

八級學員
[Avatar]

Joined: 2008-08-21 12:54:06
Messages: 24
Location: 台北
Offline

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的靜態網頁空間中顯示出來?

This message was edited 2 times. Last update was at 2008-10-21 14:30:44

[Email]
andowson

六段學員
[Avatar]

Joined: 2007-01-02 22:20:40
Messages: 652
Location: 台北
Offline

有種方法,不知道管不管用,做張網頁截圖,例如
image
可以利用下列網址產生
http://ppt.cc/yo2/index.php
然後你再將該截圖抓回來放到你的網站上去
再把img src的來源指到你的網站上

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

八級學員
[Avatar]

Joined: 2008-08-21 12:54:06
Messages: 24
Location: 台北
Offline

哇賽....那個快照網站好屌喔!原來還有那種東西....

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

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

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

謝謝andowson大力指導^^

This message was edited 1 time. Last update was at 2010-01-01 13:32:53

[Email]
 
Forum Index » 網頁程式設計 Web Development
Go to: