프레젠테이션 로직과 비즈니스 로직을 분리해 애플리케이션을 개발하기 위해 가장 많이 사용되는 프로그래밍 기법
뷰 View : 프레젠테이션 로직 구현 - JSP 문서로 구현
처리 결과를 브라우저에 출력
컨트롤러 Controller : 뷰와 모델 사이의 인터페이스 - 서블릿으로 구현
모든 요청은 컨트롤러에 전달
브라우저에 출력해야 하는 경우 뷰에 전달
모델에 의해 처리된 결과는 다시 컨트롤러에 전달


@WebServlet 애너테이션의 인자로 디렉터리 이름 지정
@WebServlet("/디렉터리/*")
실제로 프로젝트에 디렉터리를 생성하고 문서를 그 위치에 저장하는 것은 아님
-> 서로 다른 URL이 컨트롤러에 전달되므로 컨트롤러는 URL을 분석해 요청을 파악할 수 있어야함
-----> 디렉터리 이후의 내용을 추출 (request.getPathInfo())
@WebServlet 애너테이션의 인자로 와일드카드와 함께 확장자 지정
@WebServlet("*.확장자")
지정 확장자를 반드시 가져야하며 그 이전 내용은 무엇이든 상관 없음
//서버 이름을 제외한 uri 정보 반환
String uri = request.getReqeustURI();
//컨텍스트 이름 반환
/*localhost8080/chapter14/list.do일 경우 chapter14를 반환*/
String conPath = request.getContextPath();
/*uri 문자열 값 (/chapter/list.do에서 conPath값 10부터 마지막까지를 반환
list.do 반환*/
String actCode = uri.substring(conPath.length());