В данной статье показывается пример кода загрузки изображения из Java-сервлета на страницу веб браузера и сохранения изображения на компьютер.

Для загрузки изображения на страницу браузера код сервлета:
 
import java.io.IOException;
 
import java.io.OutputStream;
 
import javax.servlet.http.HttpServlet;
 
import javax.servlet.http.HttpServletRequest;
 
import javax.servlet.http.HttpServletResponse;
 
import org.apache.commons.io.IOUtils;
 
import com.google.appengine.api.blobstore.BlobInfo;
 
import com.google.appengine.api.blobstore.BlobInfoFactory;
 
import com.google.appengine.api.blobstore.BlobKey;
 
import com.google.appengine.api.blobstore.BlobstoreInputStream;
 
 
 
 
@SuppressWarnings("serial")
 
public class GetImageServlet extends HttpServlet {
 
public void doGet(HttpServletRequest req, HttpServletResponse resp)
 
throws IOException {
 
BlobInfoFactory bf=new BlobInfoFactory();
 
BlobKey blobkey=new BlobKey((String)req.getParameter("blobkey"));
 
BlobInfo bi=bf.loadBlobInfo(blobkey);
 
resp.setContentType(bi.getContentType());
 
resp.setContentLength((int)bi.getSize());
 
OutputStream out = resp.getOutputStream();
 
BlobstoreInputStream is=new BlobstoreInputStream(blobkey);
 
byte[] bytes = IOUtils.toByteArray(is);
 
is.close();
 
out.write(bytes);
 
out.flush();
 
out.close();
 
}}
 
Для загрузки изображения на компьютер код сервлета:
 
import java.io.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import com.google.appengine.api.blobstore.*;
 
 
@SuppressWarnings("serial")
public class LoadImageServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
BlobInfoFactory bf=new BlobInfoFactory();
BlobKey blobkey=new BlobKey((String)req.getParameter("blobkey"));
BlobInfo bi=bf.loadBlobInfo(blobkey);
resp.setContentType(bi.getContentType());
resp.setHeader("Content-Disposition", "attachment" );
resp.setContentLength((int)bi.getSize());
OutputStream out = resp.getOutputStream();
BlobstoreInputStream is=new BlobstoreInputStream(blobkey);
byte[] bytes = IOUtils.toByteArray(is);
is.close();
out.write(bytes);
out.flush();
out.close();
}}