작성
·
308
0
FrontControllerServletV2의 urlPatterns를 FrontControllerServletV1과 같이 /front-controller/v1/* 로 바꾸고, http://localhost:8080에 접속하여 FrontController - v1에 있는 회원가입이나 회원목록을 들어가면 FrontControllerServletV1로 실행이되는데 왜그런지 궁금합니다.
간단히 이야기하자면 urlPatterns 값이 같을 경우에 어떻게 처리가 되는지 궁금합니다.
답변 1
0
안녕하세요, lwisekiml 님. 공식 서포터즈 y2gcoder 입니다.
두 개의 서블릿 클래스가 동일한 URL 패턴을 사용하는 경우 웹 애플리케이션 배포 시 충돌이 발생하며, 웹 서버는 예상치 못한 동작이나 에러를 일으킬 수 있습니다. 웹 컨테이너(예: Tomcat, Jetty 등)가 어떤 서블릿 클래스를 호출해야 할지 알 수 없기 때문입니다.
웹 컨테이너의 동작은 구현에 따라 다르지만, 일반적으로 아래와 같은 동작 중 하나가 발생할 수 있습니다:
첫 번째로 발견된 서블릿이 호출되거나,
무작위로 호출되는 서블릿이 선택되거나,
충돌이 발생한 경우 애플리케이션 배포가 실패하거나 에러가 발생할 수 있습니다.
감사합니다.
안녕하세요, 강의를 수강 중에 같은 의문이 들어서 현재 글을 참고하게 되었습니다.
충돌이 발생한 경우 에러가 발생한다고 하셨는데, 그럼 적절한 예외처리가 필요하지 않을까라는 의문이 있었습니다. 현재 강의에서 사용되는 코드에서 이에 대응되는 예외처리는 FrontController의 service 메서드에 있는
ServletException
과IOException
이 맞을까요?