#22 mvc: RequestMappingHandlerMapping
This commit is contained in:
@@ -28,5 +28,17 @@ public class DispatcherServlet extends HttpServlet {
|
||||
@Override
|
||||
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
log.info("[DispatcherServlet] service started.");
|
||||
|
||||
try {
|
||||
Controller handler = requestMappingHandlerMapping.findHandler(req.getRequestURI());
|
||||
String viewName = handler.handleRequest(req, resp);
|
||||
|
||||
RequestDispatcher requestDispatcher = req.getRequestDispatcher(viewName);
|
||||
requestDispatcher.forward(req, resp);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("exception occured: [{}]", e.getMessage(), e);
|
||||
throw new ServletException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.example.mvc;
|
||||
|
||||
import org.example.mvc.controller.Controller;
|
||||
import org.example.mvc.controller.HomeController;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class RequestMappingHandlerMapping {
|
||||
|
||||
private Map<String, Controller> mappings = new HashMap<>();
|
||||
|
||||
void init() {
|
||||
mappings.put("/", new HomeController());
|
||||
}
|
||||
|
||||
public Controller findHandler(String uriPath) {
|
||||
return mappings.get(uriPath);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package org.example.mvc.controller;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public interface Controller {
|
||||
|
||||
String handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package org.example.mvc.controller;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public class HomeController implements Controller{
|
||||
@Override
|
||||
public String handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
return "home.jsp";
|
||||
}
|
||||
}
|
||||
13
my-framework/mvc-practice/webapp/home.jsp
Normal file
13
my-framework/mvc-practice/webapp/home.jsp
Normal file
@@ -0,0 +1,13 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="kr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>home</title>
|
||||
</head>
|
||||
<body>
|
||||
Home 페이지
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user