IT/Java

2021-03-04 일지

어린이개발자 2021. 3. 4. 18:16

<네이버 boostcourse 웹 백엔드 과정 중, Servlet 관련 내용 정리>

 

* 자바 웹어플리케이션(Java Web Application)
- WAS에 설치(deploy)되어 동작하는 어플리케이션
- 자바 웹어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래스
  (Servlet도 포함됨, package, 인터페이스 등), 각종 설정 파일 등이 포함
  
* Servlet
- 자바 웹어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램의 역할
- WAS에서 동작하는 Java 클래스
- 서블릿은 HttpServlet 클래스를 상속받아야 함
- 서블릿과 JSP로부터 최상의 결과를 얻으려면, 웹페이지를 개발할 때 

  이 두가지(JSP, 서블릿)를 조화롭게 사용해야 함
ex) 웹페이지를 구성하는 화면(HTML)은 JSP로 표현하고, 

     복잡한 프로그래밍은 서블릿으로 구현

 

* Servlet 작성방법
1) Servlet 3.0 spec 이상에서 사용하는 방법

- web.xml 파일을 사용하지 않음

- 자바 어노테이션(annotation)을 사용

 

2) Servlet 3.0 spec 미만에서 사용하는 방법

- Servlet을 등록할 때 web.xml 파일에 등록

 

* Servlet 생명주기 [LifecycleServlet 작성]
- 서블릿 생명주기를 확인할 수 있는 LifecycleServlet을 작성
- HttpServlet의 3가지 메소드를 오버라이딩
    init()
    service(request, response)
    destroy()

- WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인
- if(메모리에 없음) {
    > 해당 서블릿 클래스를 메모리에 올림
    > init() 메소드를 실행
  }
    > service() 메소드를 실행
- WAS가 종료되거나, 웹어플리케이션이 새롭게 갱신될 경우 

  destroy() 메소드가 실행됨

* service(request, response) 메소드
- HttpServlet의 service 메소드는 템플릿 메소드 패턴으로 구현
  > 클라이언트의 요청이 GET일 경우에는 자신이 가지고 있는 

     doGet(request, response) 메소드를 호출
  > 클라이언트의 요청이 POST일 경우에는 자신이 가지고 있는 

     doPost(request, response) 메소드를 호출

'IT > Java' 카테고리의 다른 글

2021-03-05 일지3  (0) 2021.03.05
2021-03-05 일지2  (0) 2021.03.05
2021-03-05 일지1  (0) 2021.03.05
2021-03-03 일지2  (0) 2021.03.03
2021-03-03 일지1  (1) 2021.03.03