FileDocCategorySizeDatePackage
ChainImageSink.javaAPI DocExample1449Tue Jan 25 10:45:14 GMT 2000None

ChainImageSink.java

import java.awt.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ChainImageSink extends HttpServlet {

  public void doGet(HttpServletRequest req, HttpServletResponse res)
                               throws ServletException, IOException {

    // See what content type we're receiving
    String contentType = req.getContentType();

    Image image = null;

    // An "image/*" content type means to expect the image as an encoded
    // byte stream
    if (contentType != null && contentType.startsWith("image")) {
      // Receive the image bytes as shown in Chapter 6
    }

    // A "java-internal/image-key" content type means to expect a key
    else if ("java-internal/image-key".equals(contentType)) {
      // Read the first line of content to get the key
      String key = req.getReader().readLine();

      // Retrieve the Image stored under that key
      image = (Image)System.getProperties().get(key);

      // Always remove the Image, to avoid a memory leak
      System.getProperties().remove(key);
    }

    // Other content types cannot be handled
    else {
      throw new ServletException("Incoming content type must be " +
                       "\"image/*\" or \"java-internal/image-key\"");
    }

    // Proceed to use the image as appropriate...
    res.setContentType("text/plain");
    PrintWriter out = res.getWriter();
    out.println("Received the image: " + image);
  }
}