hw2
This commit is contained in:
@@ -8,7 +8,7 @@ repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceCompatibility = 8
|
||||
sourceCompatibility = 10
|
||||
|
||||
dependencies {
|
||||
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
|
||||
|
||||
42
src/main/java/api/Orders.java
Normal file
42
src/main/java/api/Orders.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package api;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@WebServlet("/api/orders")
|
||||
public class Orders extends HttpServlet {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private int lastOrderId = 0;
|
||||
private Pattern orderPattern = Pattern.compile(".*\"orderNumber\":\\s*\"(.*)\".*");
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
resp.getWriter().format("%d", lastOrderId);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
resp.setContentType("application/json");
|
||||
String order = req.getReader().lines().collect(Collectors.joining(" "));
|
||||
int orderId = lastOrderId++;
|
||||
Matcher matcher = orderPattern.matcher(order);
|
||||
boolean matches = matcher.matches();
|
||||
|
||||
if (matches && matcher.groupCount() > 0) {
|
||||
String orderNumber = matcher.group(1);
|
||||
System.out.format("request data: %s, orderNumber: %s\n", order, orderNumber);
|
||||
resp.getWriter().printf("{\"id\": %d, \"orderNumber\": \"%s\"}", orderId, orderNumber);
|
||||
} else {
|
||||
resp.getWriter().print("\"Invalid request\"");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user