view src/main/java/de/mpiwg/gazetteer/rest/Servlet.java @ 0:7682c04c63a8

First commit of the source code!
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Tue, 10 Mar 2015 14:50:41 +0100
parents
children
line wrap: on
line source

package de.mpiwg.gazetteer.rest;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.json.JSONObject;

@WebServlet("/rest/text/*")
@MultipartConfig
public class Servlet extends HttpServlet {

	private static final long serialVersionUID = -8809504256505388787L;

	private final static Logger LOGGER = Logger.getLogger(Servlet.class.getCanonicalName());

	@Override
	public void init() throws ServletException {
		
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		try {
			processRequest(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		try {
			processRequest(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		String method = getLastPathComponent(request);
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		if(StringUtils.equals(SaveNewText.name, method)){
			SaveNewText.execute(request, response);
		}else if(StringUtils.equals(SaveText.name, method)){
			SaveText.execute(request, response);
		}else if(StringUtils.equals(GetFileText.name, method)){
			GetFileText.execute(request, response);
		}else if(StringUtils.equals(GetUser.name, method)){
			GetUser.execute(request, response);
		}else if(StringUtils.equals(GetSectionText.name, method)){
			GetSectionText.execute(request, response);
		}else if(StringUtils.equals(GetSectionMetadata.name, method)){
			GetSectionMetadata.execute(request, response);
		}else{
			writeError(response, "Content-type wrong. It should be: multipart/form-data");
		}
	}
	
	private static void writeError(HttpServletResponse response, String message){
		try {
			JSONObject json = new JSONObject();
			json.put("status", "error");
			json.put("message", message);
			
			PrintWriter out = response.getWriter();
			out.print(json.toString());
			out.flush();
		} catch (Exception e) {
			LOGGER.error(e);
		}
	}
	
	public String getLastPathComponent(HttpServletRequest request){
		String uri = request.getRequestURI();
		String[] array = uri.split("/");
		return array[array.length-1];
	}
}