해결된 질문
작성
·
573
0
http://localhost:8080/front-controller/v1/members/new-form 이 들어가면 whitelabel error page가 뜨는데 jsp,servlet-mvc할 때까지는 잘 됐었는데 frontcontroller에서 안 되는 것 보니 어딘가 잘못된 것 같은데 어디인지를 모르겠습니다.
servlet-mvc에서 사용한 똑같은 view페이지인 jsp파일을 사용하는데 갑자기 왜 안될까요??
FrontControllerServletV1
package hello.servlet.web.frontcontroller.v1;
import hello.servlet.web.frontcontroller.v1.controller.MemberFormControllerV1;
import hello.servlet.web.frontcontroller.v1.controller.MemberListControllerV1;
import hello.servlet.web.frontcontroller.v1.controller.MemberSaveControllerV1;
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.HashMap;
import java.util.Map;
@WebServlet(name = "frontControllerServletV1", urlPatterns = "/front-controller/vi/*")
public class FrontControllerServletV1 extends HttpServlet {
private Map<String, ControllerV1> controllerMap = new HashMap<>();
public FrontControllerServletV1() {
controllerMap.put("/front-controller/v1/members/new-form", new MemberFormControllerV1());
controllerMap.put("/front-controller/v1/members/save", new MemberSaveControllerV1());
controllerMap.put("/front-controller/v1/members", new MemberListControllerV1());
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("FrontControllerServletV1.service");
String requestURI = request.getRequestURI();
ControllerV1 controller = controllerMap.get(requestURI);
if (controller == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
controller.process(request, response);
}
}
답변 2
0
고쳐보려고 하는데 도통 이유를 모르겠습니다.
FrontControllerServletV1에서 @WebServletd어노테이션으로 /front-controller/vi/* 입력하면 받았고
controllerMap에다가 다 알맞게 넣어놨고 마지막에 controller.process(request,response); 해서 process함수도 실행시켜줬는데
왜 404가 뜰까요?....
혼자 고쳐보려고 계속 들여다봤는데 왜 저는 저게 안 보였는지.....
감사합니다!