Mercurial > hg > IndexMetaContextualizer
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 } |