Servlet动态生成图片方法。
在Web应用中,经常要动态生成图片,如实施股市行情,各种统计图等。在这种情况下,图片只能在服务器内存中动态生成并发送给客户端,然后在浏览器中显示出来。本质上,浏览器向服务器请求静态图片(如jpeg)时,服务器返回的仍然是标准的http响应,只不过http头的contentType属性不是text/html,而是image/jpeg。因此,在Servlet中只要设置好contentType,然后发送图像的数据流,浏览器就能正确解析并显示出图片。在Java中,java.awt和java.awt.image包提供了基本的绘制图像的能力,用户可以在内存中绘制好需要的图形,然后编码成jpeg或其它图像格式,最后发送给浏览器即可。
一、创建ImgServlet,实现动态生成图片的功能
package com;
import java.io.IOException;
import java.awt.*;
import java.awt.image.*;
import javax.servlet.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImgServlet extends HttpServlet{
}
注意:
二、配置web.xml
三、创建一个静态页面image.html来显示由Servlet创建的图片,其中img元素的src属性的值就是我们在配置文件中指定的Servlet的映射路径。
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd“>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Insert title here</title>
</head>
<body>
<center>
<h2>Servlet动态生成图片</h2>
<br>
<img src=”CreateImage”>
</center>
</body>
</html>