comparison 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
comparison
equal deleted inserted replaced
8:9ce7979fd037 9:2bc783262919
1 package de.mpiwg.indexmeta.web.servlet;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.io.UnsupportedEncodingException;
6 import java.util.Map;
7 import java.util.Map.Entry;
8
9 import javax.servlet.Servlet;
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
14 import org.apache.commons.lang.StringUtils;
15 import org.apache.log4j.Logger;
16
17 import de.mpiwg.indexmeta.web.servlet.methods.JSONGetCtxFromDB;
18 import de.mpiwg.indexmeta.web.servlet.methods.JSONGetCtxFromIndexMeta;
19 import de.mpiwg.indexmeta.web.servlet.methods.JSONSaveCtx;
20
21 public class JSONServlet extends AbstractServlet implements Servlet{
22 private static final long serialVersionUID = 1L;
23
24 private static Logger logger = Logger.getLogger(JSONServlet.class);
25
26 private HttpServletRequest request;
27 private HttpServletResponse response;
28
29 private void initialize(HttpServletRequest request, HttpServletResponse response){
30
31 this.request = request;
32 this.response = response;
33 this.response.setContentType("application/json; charset=UTF-8");
34
35 try {
36 System.out.println(request.getCharacterEncoding());
37 request.setCharacterEncoding("UTF-8");
38 } catch (UnsupportedEncodingException e) {
39 e.printStackTrace();
40 }
41 }
42
43 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
44 this.doIt(request, response);
45 }
46
47 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
48 this.doIt(request, response);
49 }
50
51 public void doIt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
52 long start = System.currentTimeMillis();
53 this.initialize(request, response);
54
55 String method = request.getParameter(METHOD);
56
57 logger.info("Starting " + paramsToString(request.getParameterMap()));
58
59 if(StringUtils.isNotEmpty(method)){
60 try{
61 if(method.equals(getCtxFromDB)){
62 JSONGetCtxFromDB.execute(getDp(request, response), request, response);
63 }else if(method.equals(getCtxFromIndexMeta)){
64 JSONGetCtxFromIndexMeta.execute(getDp(request, response), request, response);
65 }else if(method.equals(getSaveCtx)){
66 JSONSaveCtx.execute(getDp(request, response), request, response);
67 }
68 } catch (Exception e) {
69 logger.error(e.getMessage(), e);
70 PrintWriter out = response.getWriter();
71 out.print(e.getMessage());
72 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
73 }
74 }else{
75 response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter method can not be null.");
76 }
77
78 long end = System.currentTimeMillis();
79 logger.info("Finish [time=" + (end-start) + "] " + paramsToString(request.getParameterMap()));
80 }
81
82 private String paramsToString(Map<String, String[]> paramMap){
83 StringBuilder sb = new StringBuilder();
84
85 for(Entry<String, String[]> entry : paramMap.entrySet()){
86 sb.append(entry.getKey() + "=[");
87 int count = 0;
88 for(String value : entry.getValue()){
89 if(count > 0){
90 sb.append(", ");
91 }
92 sb.append(value);
93 count++;
94 }
95 sb.append("] ");
96 }
97
98 return sb.toString();
99 }
100 }