Mercurial > hg > IndexMetaContextualizer
view src/main/java/de/mpiwg/indexmeta/web/servlet/JSONServlet.java @ 9:2bc783262919 default tip
Implementation of Servlet
author | Jorge Urzua <jurzua@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 24 Apr 2013 10:34:46 +0200 |
parents | |
children |
line wrap: on
line source
package de.mpiwg.indexmeta.web.servlet; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.Map; import java.util.Map.Entry; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import de.mpiwg.indexmeta.web.servlet.methods.JSONGetCtxFromDB; import de.mpiwg.indexmeta.web.servlet.methods.JSONGetCtxFromIndexMeta; import de.mpiwg.indexmeta.web.servlet.methods.JSONSaveCtx; public class JSONServlet extends AbstractServlet implements Servlet{ private static final long serialVersionUID = 1L; private static Logger logger = Logger.getLogger(JSONServlet.class); private HttpServletRequest request; private HttpServletResponse response; private void initialize(HttpServletRequest request, HttpServletResponse response){ this.request = request; this.response = response; this.response.setContentType("application/json; charset=UTF-8"); try { System.out.println(request.getCharacterEncoding()); request.setCharacterEncoding("UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doIt(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doIt(request, response); } public void doIt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { long start = System.currentTimeMillis(); this.initialize(request, response); String method = request.getParameter(METHOD); logger.info("Starting " + paramsToString(request.getParameterMap())); if(StringUtils.isNotEmpty(method)){ try{ if(method.equals(getCtxFromDB)){ JSONGetCtxFromDB.execute(getDp(request, response), request, response); }else if(method.equals(getCtxFromIndexMeta)){ JSONGetCtxFromIndexMeta.execute(getDp(request, response), request, response); }else if(method.equals(getSaveCtx)){ JSONSaveCtx.execute(getDp(request, response), request, response); } } catch (Exception e) { logger.error(e.getMessage(), e); PrintWriter out = response.getWriter(); out.print(e.getMessage()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } }else{ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter method can not be null."); } long end = System.currentTimeMillis(); logger.info("Finish [time=" + (end-start) + "] " + paramsToString(request.getParameterMap())); } private String paramsToString(Map<String, String[]> paramMap){ StringBuilder sb = new StringBuilder(); for(Entry<String, String[]> entry : paramMap.entrySet()){ sb.append(entry.getKey() + "=["); int count = 0; for(String value : entry.getValue()){ if(count > 0){ sb.append(", "); } sb.append(value); count++; } sb.append("] "); } return sb.toString(); } }