Mercurial > hg > LGServices
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]; + } +}