서블릿에서 데이터를 리퀘스트에 담고 jsp로 포워드 이동해서 응답하는 걸 MVC패턴이라 이해하면 됨
디스패처 서블릿을 직접 변경하진 못함. 그래서 서블릿 콘텍스트 xml 파일을 변경
서블릿 콘텍스트 파일로 이동했더니
컨트롤러에서 리턴할 때 앞과 뒤에 붙는 거 설정
클라이언트가 어떤 요청(. do로 끝나는)함. 그럼 디스패처는 이 요청을 처리할 컨트롤러 찾음. 처리하고 xxx.jsp로 포워드 이동함.
그리고 jsp에서 응답
톰캣 웹서버 동작은 web.xml로 세팅
디스패처 서블릿 동작은 servlet-content.xml로 세팅
원래 자르 파일은 직접 다운로드하여서 넣었었음
스프링에서는?
우린 저걸 다운받아서 가져다 놓은 적 없었음
메이븐 프로젝트 특징은 pom.xml 존재
이게 바로 의존 라이브러리. 여기에 붙여 넣으면 자동 다운로드해서 세팅해놓음
이런 문자열은 어디서 가져오나?
MVNrepository에서 jstl 검색
원래 위에 jar파일 클릭해서 다운로드한 후 직접 넣어줬지만 pom.xml에 밑에 Maven 코드 복사해서 붙여 넣으면 알아서 세팅됨
자바 코딩은 자바 리소스
jsp페이지는 src->web-inf->views에 넣어서 포워드 이동
webapp은 다이내믹 웹 프로젝트에 있었던 webContent라고 생각하면 됨
여기는 공개 폴더
WEB-INF는 클라이언트 요청에 대해 응답하지 않음
보안되는 폴더임
webapp에는 html, css, js, image 등 넣고 jsp는 특별한 이유가 없는 한 거의 views에 넣음
반드시 하위에 넣어줘야 함
컴포넌트 스캔을 통해 동작을 하게끔 만듦
스프링 프레임워크는 웹 개발에만 사용하는 게 아닌 자바로 개발하는 모든 것에 적용 가능
스프링 장점은?
구조화되어있어서 유지보수 용이
이 작업을 modelandview를 통해 똑같이 가능
setViewNAme은 외부 페이지! 앞에 Web-inf- 뒤에. jsp 붙는 거임
addobject는 여러 개 가능
모델 엔뷰에 담아서 리턴해주면 스프링 프레임워크가 알아서 리퀘스트에 담아줌
직접 생성하기 싫으면 인자로 받음
ModelAndView type을 메서드의 인자로 받을 준비를 해 놓으면
spring 이 알아서 객체를 생성해서 참조값을 메서드의 인자로 전달해준다.
리턴하면 포워드 이동이지만 리디렉트는 redirect 이용
리다일렉트는 요청 다시 하라고 말하는 것
프렌즈로 다시 돌아감
모델 엔뷰를 통해서도 리다일렉트 가능