-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMyServlet.java
More file actions
101 lines (88 loc) · 2.68 KB
/
MyServlet.java
File metadata and controls
101 lines (88 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.lgcns.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.TreeMap;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
public class MyServlet extends HttpServlet{
MessageQueue mq =new MessageQueue();
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
JsonObject jObj =null;
BufferedReader input = new BufferedReader(new InputStreamReader(req.getInputStream()));
String buffer;
StringBuilder sb = new StringBuilder();
while((buffer =input.readLine())!= null) {
sb.append(buffer +"\n");
}
input.close();
Gson gson = new Gson();
if(sb.isEmpty()==false)
{
String strBody = sb.toString();
System.out.println(strBody);
if(strBody!=null && strBody.trim().equals("null")==false )
jObj = gson.fromJson(strBody, JsonObject.class);
}
String line = req.getRequestURI();
String [] command = line.split("/");
String result ="";
if(command[1].equals("SEND")) {
if(mq.enqueue(command[2],jObj.get("Message").getAsString()) ==true) {
result ="Ok";
}
else {
result ="Queue Full";
}
}
else if(command[1].equals("CREATE")) {
if(mq.createQueue(command[2], Integer.parseInt(jObj.get("QueueSize").getAsString()))){
result ="Ok";
}
else {
result ="Queue Exist";
}
}
else if(command[1].equals("ACK")) {
mq.remove(command[2], command[3]);
result ="Ok";
}
else if(command[1].equals("FAIL")) {
mq.changeStatus(command[2], command[3],true);
result ="Ok";
}
Map<String,String> resultMap = new TreeMap<String,String>();
resultMap.put("Result", result);
String jsonStr =gson.toJson(resultMap);
res.setStatus(200);
res.getWriter().write(jsonStr);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
String line = req.getRequestURI();
String [] command =line.split("/");
Map<String,String> resultMap = new TreeMap<String,String>();
Gson gson = new Gson();
if(command[1].equals("RECEIVE")) {
Element e = mq.dequeue(command[2]);
if(e!= null) {
String value =e.getValue();
String uid =e.getUid();
resultMap.put("Result", "ok");
resultMap.put("MessageID", uid);
resultMap.put("Message", value);
}
else {
resultMap.put("Result", "No message");
}
}
String jsonStr =gson.toJson(resultMap);
res.setStatus(200);
res.getWriter().write(jsonStr);
}
}