diff src/main/java/de/mpiwg/gazetteer/rest/TextServlet.java @ 0:3e62083dbcbf

First commit. This project comes from LGServer. We removed the framework icefaces. Now, LGServices uses just JSP and jquery.
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Thu, 23 Apr 2015 15:46:01 +0200
parents
children 3b3e2963c8f7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/gazetteer/rest/TextServlet.java	Thu Apr 23 15:46:01 2015 +0200
@@ -0,0 +1,90 @@
+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 TextServlet extends HttpServlet {
+
+	private static final long serialVersionUID = -8809504256505388787L;
+
+	private final static Logger LOGGER = Logger.getLogger(TextServlet.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 if(StringUtils.equals(GetTable4File.name, method)){
+			GetTable4File.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 static String getLastPathComponent(HttpServletRequest request){
+		String uri = request.getRequestURI();
+		String[] array = uri.split("/");
+		return array[array.length-1];
+	}
+}