✅네이버클라우드 캠프/개발일기

[네이버클라우드캠프] 72일차. Eclipse Test 배포와 Servlet 컨테이너, HttpServlet 인터페이스

우동한그릇 2023. 8. 7. 17:23
반응형

* 기존 프로젝트 → 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

 

반응형