* 기존 프로젝트 → Servlet 프로젝트 Migration (이전)
* app-common의 build.gradle은 war를 포함시키지 않는 이유 ?
app-common 의 buid gradle 파일은 build 하여 따로 배포하는 용도가 아니라
app-server에 의존성을 주입하기 위한 것이므로 id 'war'를 포함시키지 않는다.
* 서버루트 설정
* 톰캣 서버가 아니라 이클립스 서버에서 임시로 테스트 배포하는 이유 ?
original 서버로 배포하기 전에 테스트 배포를 시행하여
프로그램 개발이 성공하였는 지를 먼저 확인해주어야 한다.
* original tomcat server
* eclipse test server
New-Server-Publish
* Project 폴더와 배포 폴더 구조
* 제대로 Test Server가 배포되었는지 확인하는 방법 ?
"tmp0 - wtpwebapps - myapp-server - WEB-INF"
해당 경로에 classes 파일이 제대로 있는 지 확인하고,
파일이 없다면 gradle eclipse와 server add & server publish 를 다시 진행한다.
* Servlet Container (예 : 톰캣서버) 기본 구조
* 서블릿 컨테이너와 서블릿 객체
* Servlet의 LifeCircle 과 관련된 메소드 (호출규칙) ?
① init 호출
- 요청이 들어왔을 때 실행 할 객체가 없을 때 Servlet 실행에 필요한 객체생성
② service 호출
- 요청이 들어왔을 때 클라이언트의 요청을 처리
③ destroy 호출
- init()에 준비했던 자원을 해제
* web.xml 생성 및 기본문구 작성
추가 했으면 gradle eclipse를 입력해주고, WEB-INF에 web.xml 파일이 생성된다.
* 서블릿 객체 제작 및 실행
* Servlet 객체가 java.io.Serializable 인터페이스 구현하는 이유 ?
* 서블릿 제작
매우중요!!
HttpServlet 인터페이스를 상속받으면
service는 파라미터로 입력된 request와 response를
(HttpServletRequest), (HttpServletResponse)로 직접 형변환하여 요청을 처리해준다.
즉 사용자가 HttpServlet 인터페이스를 구현하면 직접 형변환을 할 필요가 없기 때문에
코드가 간결해진다.
인터페이스
코드수정 전/후
ServletRequset -> HttpServletRequest