Java 用Servlet生成图像

Java 用Servlet生成图像,java,servlets,Java,Servlets,这是我第一个生成并向客户端显示图像的servlet 但是commect提到的部分中存在编译时错误 public class DynamicImage extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentTyp

这是我第一个生成并向客户端显示图像的servlet

但是commect提到的部分中存在编译时错误

public class DynamicImage extends HttpServlet {

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

    response.setContentType("image/jpeg");

    //create image
    int width = 200;
    int height = 30;
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

    //get drawing context
    Graphics2D g = (Graphics2D) image.getGraphics();
    g.setColor(Color.GRAY);
    g.fillRect(0, 0, width, height);

    //draw a string
    g.setColor(Color.WHITE);
    g.setFont(new Font("Dialog", Font.PLAIN, 14));
    g.drawString("My String!", 10, height / 2 + 4);

    //draw a border
    g.setColor(Color.BLACK);
    g.drawRect(0, 0, width - 1, height - 1);

    //dispose context
    g.dispose();

    //send back image to the client
    ServletOutputStream sos = response.getOutputStream();
    com.sun.image.codec.jpeg.JPEGImageEncoder encoder = JPEGCodec // Compile Time Error, cant find JPEGCodec

    }
}
我的IDE(Netbeans)无法找到并导入JPEG编解码器,解决方案是什么


我建议不要使用这个类。这只会让人头疼。

您需要下载rt.jar文件并将其添加到类路径中。
从下载。

如果上述链接不起作用,请访问com.sun包中的类,这些类没有文档记录,不应使用。使用可以用JPEG格式编写图像的公共API,如ImageIO。强烈建议不要用servlet生成图像。映像应该已经存在于文件系统或数据库中;在servlet中这样做不仅效率低下,而且有些服务器没有图形卡或图形环境,因此您的图形操作可能会失败。@ControlAltDel我可以想出许多在服务器端生成图像的用例。在服务器端生成图像一点也不奇怪。要处理没有图形系统的问题,只需设置headless模式的属性:-Djava.awt.headless=true