Pastebin

Paste #113:

< previous paste - next paste>

Pasted by tdn

Download View as text

package dk.mobilenation.imagetool.web;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import javax.servlet.http.HttpServlet;

import javax.servlet.ServletException;
import javax.servlet.ServletConfig;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URL;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.gif4j.GifDecoder;
import com.gif4j.GifEncoder;
import com.gif4j.GifImage;

import dk.mobilenation.imagetool.interfaces.Image;
import dk.mobilenation.imagetool.interfaces.ImageHome;

/**
 * Servlet Class
 *
 * @web.servlet              name="Resize"
 *                           display-name="Name for Resize"
 *                           description="Description for Resize"
 * @web.servlet-mapping      url-pattern="/Resize"
 * @web.servlet-init-param   name="A parameter"
 *                           value="A value"
 * @web.ejb-ref
 *		name="ejb/Image"
 *		type="Session"
 *		home="dk.mobilenation.imagetool.interfaces.FiboHome"
 *		remote="dk.mobilenation.imagetool.interfaces.Fibo"
 *		description="Reference to the Image EJB"
 * 
 * @jboss.ejb-ref-jndi
 *		ref-name="ejb/Image"
 *		jndi-name="ejb/Image"
 */
public class ResizeServlet extends HttpServlet {
	
	private ImageHome home;
	
	public ResizeServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void init(ServletConfig config) throws ServletException {
		//super.init(config);
		try {
			Context context = new InitialContext();
			Object ref = context.lookup("java:/comp/env/ejb/Image");
			home = (ImageHome) PortableRemoteObject.narrow(ref, ImageHome.class);
		} catch (Exception e) {
			throw new ServletException("Lookup of java:/comp/env/ failed");
		}
	}
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
		throws ServletException,
		IOException {
		resizeImage(request, response);

	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		resizeImage(request, response);
	}

	private void resizeImage(HttpServletRequest request, HttpServletResponse response) {
		try {
			Image bean = home.create();

			URL imageURL = new URL(request.getParameter("url"));
			//URL imageURL = new URL("http://gif-animate.per-il-mio-sito.com/animali_pinguini/pinguino-03.gif");
			System.out.println("doGet(): Got request");

			if (imageURL != null) {
				try {
					boolean imageSmooth = Boolean.parseBoolean(request.getParameter("smooth"));
					int imageWidth = Integer.parseInt(request.getParameter("width"));
					int imageHeight = Integer.parseInt(request.getParameter("height"));
					GifImage theImage = GifDecoder.decode(imageURL); 
					GifImage resizedImage = bean.resizeGifImage(imageWidth, imageHeight, theImage, imageSmooth);
					bean.remove();
			        
					response.setContentType("image/gif");
					OutputStream out = response.getOutputStream();
					GifEncoder.encode(resizedImage,out);
				} catch (Exception e) {
					//e.printStackTrace();
					response.setContentType("text/html");
					PrintWriter out = response.getWriter();
	
					out.println("<html><head><title>");
					out.println("Error!");
					out.println("</title></head>");
					out.println("<body>");
	
					out.println("<h1>");
					out.println("Bad user input!");
					out.println("</h1>");
					out.println("</body></html>");
					out.close();
				}
			} else {
				response.setContentType("text/html");
				PrintWriter out = response.getWriter();

				out.println("<html><head><title>");
				out.println("Error!");
				out.println("</title></head>");
				out.println("<body>");

				out.println("<h1>");
				out.println("Empty URL!");
				out.println("</h1>");
				out.println("</body></html>");
				out.close();
				
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("doGet() request caught exception");
		} finally {
		}		
	}
}

New Paste


Do not write anything in this field if you're a human.

Go to most recent paste.