1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.example.asyncrest;
20
21 import java.io.BufferedReader;
22 import java.io.IOException;
23 import java.io.InputStreamReader;
24 import java.io.PrintWriter;
25 import java.net.HttpURLConnection;
26 import java.net.URL;
27 import java.util.LinkedList;
28 import java.util.Map;
29 import java.util.Queue;
30
31 import javax.servlet.ServletException;
32 import javax.servlet.http.HttpServlet;
33 import javax.servlet.http.HttpServletRequest;
34 import javax.servlet.http.HttpServletResponse;
35
36 import org.eclipse.jetty.util.ajax.JSON;
37
38
39
40
41 public class SerialRestServlet extends AbstractRestServlet
42 {
43 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
44 {
45 long start = System.nanoTime();
46
47
48 String[] keywords=sanitize(request.getParameter(ITEMS_PARAM)).split(",");
49 Queue<Map<String,String>> results = new LinkedList<Map<String,String>>();
50
51
52 for (String itemName : keywords)
53 {
54 URL url = new URL(restURL(itemName));
55
56 HttpURLConnection connection = (HttpURLConnection)url.openConnection();
57 connection.setRequestMethod("GET");
58
59 Map query = (Map)JSON.parse(new BufferedReader(new InputStreamReader(connection.getInputStream())));
60 Object[] auctions = (Object[]) query.get("Item");
61 if (auctions != null)
62 {
63 for (Object o : auctions)
64 results.add((Map) o);
65 }
66 }
67
68
69
70 String thumbs=generateThumbs(results);
71
72 response.setContentType("text/html");
73 PrintWriter out = response.getWriter();
74 out.println("<html><head>");
75 out.println(STYLE);
76 out.println("</head><body><small>");
77
78 long now = System.nanoTime();
79 long total=now-start;
80
81 out.print("<b>Blocking: "+sanitize(request.getParameter(ITEMS_PARAM))+"</b><br/>");
82 out.print("Total Time: "+ms(total)+"ms<br/>");
83 out.print("Thread held (<span class='red'>red</span>): "+ms(total)+"ms<br/>");
84
85 out.println("<img border='0px' src='asyncrest/red.png' height='20px' width='"+width(total)+"px'>");
86
87 out.println("<hr />");
88 out.println(thumbs);
89 out.println("</small>");
90 out.println("</body></html>");
91 out.close();
92
93
94
95 }
96
97
98
99
100
101 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
102 {
103 doGet(request, response);
104 }
105
106 }