Servlet
April 29, 2015

image servlet example

svg

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/logo.svg"})
public class LogoSvgServlet extends HttpServlet {

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

    response.setContentType("image/svg+xml");

    String svgString =
        "<svg width=\"17\" height=\"20\" viewBox=\"0 0 17 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n"
            + "    <path d=\"M0 0H6.00019V3.82345L17 1.66667V6.66667L6.00019 8.82345V10.4901L17 8.33333V13.3333L6.00019 15.4901V20H0V0Z\" fill=\"url(#paint0_linear)\"/>\n"
            + "    <defs>\n"
            + "        <linearGradient id=\"paint0_linear\" x1=\"3.33335\" y1=\"3.08442e-08\" x2=\"8.49995\" y2=\"20\" gradientUnits=\"userSpaceOnUse\">\n"
            + "            <stop stop-color=\"#297FFF\"/>\n"
            + "            <stop offset=\"1\" stop-color=\"#7A0EE7\"/>\n"
            + "        </linearGradient>\n"
            + "    </defs>\n"
            + "</svg>";

    try (OutputStream out = response.getOutputStream()) {
      out.write(svgString.getBytes());
    }
  }
}

png

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Base64;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/logo.png"})
public class LogoPngServlet extends HttpServlet {

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

    response.setContentType("image/png");

    String base64String =
        "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";

    byte[] imageBytes = Base64.getDecoder().decode(base64String);
    InputStream is = new ByteArrayInputStream(imageBytes);

    try (OutputStream out = response.getOutputStream()) {
      byte[] buffer = new byte[1024];
      int bytesRead;
      while ((bytesRead = is.read(buffer)) != -1) {
        out.write(buffer, 0, bytesRead);
      }
    }
  }
}