📄 0134.htm
字号:
<html>
<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</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中实时地创建图象</strong></big></p>
<div align="right">---摘自互联网</div>
<br>在Java创建图象或进行图象处理,有几个包和类是需要用到的。详细请参阅Purple Servlet References。<br>
<br>
当您的servlet有图象文件时您有两个选择。 <br>
<br>
把文件写入磁盘并提供连接。注意写在您的web服务器目录树下(不是在服务器磁盘的任何地方都行。)你可以用Java 2 JPEGCodec类,或Acme Labs' GIFEncoder类将Java Graphics 转换成图象文件或二进制流.<br>
值得一提的是在一些servlet引擎设置中,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中,当再次请求时不必重新运行servlet,因此减轻了服务器的负担。<br>
). <br>
<br>
图象不能从磁盘中删除,因此您必须写一段程序来定期清理图象目录,或进入目录后用手工删除。(或买一张大点的硬盘):-)<br>
<br>
2.直接从servlet输出图象。通过给image/gif (for GIFs)或 image/jpeg (for JPEGs)设置Content-type头来实现它。然后打开HttpResponse output流作为原始流而不是打印流,用write()方法直接传送字节。 <br>
<br>
以下是一个用servlet实时创建图像的例子程序<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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -