-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathFirstController.java
More file actions
39 lines (31 loc) · 1.26 KB
/
FirstController.java
File metadata and controls
39 lines (31 loc) · 1.26 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
package controller;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import webserver.ControllerMapper;
import webserver.HttpMethod;
import webserver.Request;
import webserver.Response;
public class FirstController {
private static final FirstController instance = new FirstController();
private final Map<ControllerMapper, Controller> map = new ConcurrentHashMap<>();
private Logger log = LoggerFactory.getLogger(FirstController.class);
private FirstController() {
map.put(new ControllerMapper(HttpMethod.POST, "/user/create"), UserJoinController.getInstance());
map.put(new ControllerMapper(HttpMethod.GET, "/user/logout"), UserLogoutController.getInstance());
map.put(new ControllerMapper(HttpMethod.POST, "/user/login"), UserLoginController.getInstance());
}
public void run(Request request, Response response) throws IOException {
Controller controller = map.get(new ControllerMapper(request.getHttpMethod(), request.getPath()));
if (controller == null) {
controller = HomeController.getInstance();
}
log.debug("call {}", controller);
controller.process(request, response);
}
public static FirstController getInstance() {
return instance;
}
}