서블릿이란
jsp 학습을 위해 패키징을 jar 대신 war 방식을 사용한다.서블릿 자동등록을 위해 @ServletComponentScan 사용한다.
클라이언트가 서버로 데이터를 전달하는 방법은 3가지이다.메세지 바디 없이 url에 쿼리 파라미터에 데이터를 실어서 전송url?username=kim&age=20html Form 태그로 데이터 전송메시지 바디에 쿼리 파라미터 형식으로 전달한다.content-type :
서블릿 방식, JSP, MVC 패턴
dispatcher.forward() 는 다른 서블릿이나 jsp로 이동하는 기능이다. 서버 내부에서 다시 호출이 발생하므로 url은 변화하지 않는다.
서블릿 하나로 클라이언트 요청을 다 받는다.프요청에 맞는 컨트롤러를 찾아서 호출한다.입구가 하나인 건물의 수문장 역할을 한다.
V3의 경우 view파일 이름, view파일에 전달할 model을 모아 modelView를 생성해 반환한다.V4의 경우 modelView를 반환하지 않고, 단순히 view파일 이름을 반환하고, model은 파라미터 간접참조를 통해 전달한다.
스프링MVC
위의 컨트롤러는 빈의 이름과 요청 url이 일치해야 하는 컨트롤러로 BeanNameUrlHandlerMapping 에서 핸들러로 반환된다.
jar을 사용하면 /resources/static/index.html 위치에 index.html을 두면 WelcomePage로 인식을 한다.로그 라이브러리는 많은 라이브러리가 있는데 통합해서 인터페이스로 제공하는게 바로 slf4j라이브러리이다.
consumes = "application/json" 이라는 뜻은 요청 헤더의 Content-Type이 json형식이어야 한다는 의미이다. (서버가 소비하는 입장)
스프링은 파라미터를 컨트롤러로 사용하기 쉽게 넘겨주는 @RequestParam 기능을 가지고 있다.
말 그대로 단순하게 body에 있는 데이터를 stream으로 받는 방법
스프링에서 응답 데이터를 만드는 방법
@ResposeBody 나 @RequestBody를 사용하면 Http메시지 컨버터가 동작한다.