강의

멘토링

로드맵

Inflearn Community Q&A

dbehxks023950's profile image
dbehxks023950

asked

Spring MVC Part 1 - Core technologies for backend web development

Front Controller Introduction - v1

whitelabel error page

Resolved

Written on

·

674

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);

    }
}

 

 

 

 

springmvc

Quiz

66% of people got it wrong. Give it a try!

프론트 컨트롤러 패턴에서 클라이언트의 모든 요청을 가장 먼저 받아 처리하는 역할을 하는 것은 무엇일까요?

특정 컨트롤러

데이터베이스

프론트 컨트롤러 서블릿

뷰 템플릿

Answer 2

2

안녕하세요. Lego님, 공식 서포터즈 David입니다.

매핑된 url pattern이 v1이 아니라 vi로 보여지는데, 이 부분 확인 부탁드립니다.

image

감사합니다.

Lego님의 프로필 이미지
Lego
Questioner

혼자 고쳐보려고 계속 들여다봤는데 왜 저는 저게 안 보였는지.....

감사합니다!

0

Lego님의 프로필 이미지
Lego
Questioner

고쳐보려고 하는데 도통 이유를 모르겠습니다.

FrontControllerServletV1에서 @WebServletd어노테이션으로 /front-controller/vi/* 입력하면 받았고

controllerMap에다가 다 알맞게 넣어놨고 마지막에 controller.process(request,response); 해서 process함수도 실행시켜줬는데

왜 404가 뜰까요?....

dbehxks023950's profile image
dbehxks023950

asked

Ask a question