?? 0134.htm
字號:
<html>
<head>
<title>新時代軟件教程:操作系統(tǒng) 主頁制作 服務(wù)器 設(shè)計軟件 網(wǎng)絡(luò)技術(shù) 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>如何在servlet中實時地創(chuàng)建圖象</strong></big></p>
<div align="right">---摘自互聯(lián)網(wǎng)</div>
<br>在Java創(chuàng)建圖象或進行圖象處理,有幾個包和類是需要用到的。詳細請參閱Purple Servlet References。<br>
<br>
當(dāng)您的servlet有圖象文件時您有兩個選擇。 <br>
<br>
把文件寫入磁盤并提供連接。注意寫在您的web服務(wù)器目錄樹下(不是在服務(wù)器磁盤的任何地方都行。)你可以用Java 2 JPEGCodec類,或Acme Labs' GIFEncoder類將Java Graphics 轉(zhuǎn)換成圖象文件或二進制流.<br>
值得一提的是在一些servlet引擎設(shè)置中,servlet的目錄不能通過web server進入,只能通過servlet引擎,也就是說您不能通過http:// URL登錄,您可以向您的servlet輸出的HTML傳送IMG標簽,或傳送HTTP重新定位來讓瀏覽器直接下載圖象。 <br>
(CookieDetector (http://www.purpletech.com/code/CookieDetector.html) has an example, with source code, of sending a redirect.) <br>
(CookieDetector (http://www.purpletech.com/code/CookieDetector.html) 有一個例子,有傳送重新定位源代碼。<br>
圖象可以被保存在瀏覽器的cache中,當(dāng)再次請求時不必重新運行servlet,因此減輕了服務(wù)器的負擔(dān)。<br>
). <br>
<br>
圖象不能從磁盤中刪除,因此您必須寫一段程序來定期清理圖象目錄,或進入目錄后用手工刪除。(或買一張大點的硬盤):-)<br>
<br>
2.直接從servlet輸出圖象。通過給image/gif (for GIFs)或 image/jpeg (for JPEGs)設(shè)置Content-type頭來實現(xiàn)它。然后打開HttpResponse output流作為原始流而不是打印流,用write()方法直接傳送字節(jié)。 <br>
<br>
以下是一個用servlet實時創(chuàng)建圖像的例子程序<br>
<br>
import javax.servlet.*;<br>
import javax.servlet.http.*;<br>
import java.io.*;<br>
import java.util.*;<br>
import com.sun.image.codec.jpeg.*;<br>
import java.awt.image.*;<br>
import java.awt.*;<br>
public class JPEGServlet extends HttpServlet {<br>
//Process the HTTP Get request<br>
public void doGet(HttpServletRequest request, HttpServletResponse response)<br>
throws ServletException, IOException {<br>
response.setContentType("image/jpeg");<br>
ServletOutputStream out = response.getOutputStream();<br>
BufferedImage image = new BufferedImage(100,100, BufferedImage.TYPE_INT_RGB);<br>
Graphics g = image.getGraphics();<br>
g.setColor(Color.green);<br>
g.fillRect(0, 0, 100, 100);<br>
g.setColor(Color.red);<br>
g.drawOval(0, 0, 100,100);<br>
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out);<br>
encoder.encode(image);<br>
out.close();<br>
}<br>
//Process the HTTP Post request<br>
public void doPost(HttpServletRequest request, HttpServletResponse response)<br>
throws ServletException, IOException {<br>
doGet(request,response);<br>
}<br>
//Get Servlet information<br>
public String getServletInfo() {<br>
return "JPEGServlet Information";<br>
}<br>
}
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -