На главную

Семинар

Введение

Сервлеты

  • Первый сервлет
  • Создаем HTML
  • Читаем параметры
  • Задание 1
  • Графика
  • Задание 2

    Скриплеты

  • Первый скриплет
  • JSP Выражения
  • JSP Скриплеты
  • JSP Описания
  • Задание 3

    Благодарности

    Ссылки

  • Динамическая графика в Java сервлетах

    Существуют Java библиотеки, позволяющие отправить картинку в ответ на запрос пользователя. Рассмотрим пример создания изображения в формате JPEG. Для этого:

    • Создаем класс JPEGImageEncoder, предоставляя ему поток OutputStream данных, передаваемых клиенту.
    • Создаем изображение BufferedImage.
    • Рисуем картинку, используя класс Graphics
    • Перекодируем изображение в формат JPEG с помощью и отправляем пользователю.

    Пример

    import java.io.*;
    import java.awt.*;
    import java.awt.image.*;
    import com.sun.image.codec.jpeg.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    public class image extends HttpServlet {
       public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
          response.setContentType("image/jpeg");
             // сообщаем тип документа
          OutputStream stream = response.getOutputStream();
          JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(stream);
             // создаем перекодировщик изображения
          int ImageWidth = 100;
          int ImageHeight = 100;
          BufferedImage bi = new BufferedImage(ImageWidth, ImageHeight,
                                               BufferedImage.TYPE_BYTE_INDEXED);
             // создаем изображение BufferedImage
          Graphics graphics = bi.getGraphics();
             // рисуем
          graphics.setColor(Color.white);
          graphics.fillRect(0, 0, bi.getWidth(), bi.getHeight());
             // закрашиваем фон белым цветом

          /* ...................... */

          encoder.encode(bi);
             // преобразовываем картинку в формат jpeg и отправляем пользователю
       }
    }

    Посмотреть пример