You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.8 KiB
Java

Working with images
package com.ack.web.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WorkingWithImages extends HttpServlet {
private int counter;
public void doGet( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
ServletOutputStream os = res.getOutputStream();
res.setContentType( "image/bmp" );
// where possible, tell the client how big the file is
res.setContentLength( 3936256 );
// get resource as a url
URL resourceUrl = getServletContext().getResource( "/images/large.bmp" );
if( resourceUrl == null ) {
res.sendError( HttpServletResponse.SC_NOT_FOUND );
return;
}
// open connection to resource
URLConnection con = null;
try {
con = resourceUrl.openConnection();
con.connect();
}
catch( IOException ioe ) {
res.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"unable to read resource: /images/large.bmp" );
}
// send resource contents back down output stream
try {
InputStream is = con.getInputStream();
byte[] buf = new byte[8096];
int bytesRead;
while( ( bytesRead = is.read( buf ) ) != -1 ) {
os.write( buf, 0, bytesRead );
}
}
catch( IOException ioe ) {
res.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"unable to send resource to client: /image/large.bmp" );
}
}
}