본문 바로가기
Java Web/JSP

[JSP] JSP와 Servlet(서블릿)

by 스응 2023. 3. 22.
728x90
728x90

JSP (Java Server Pages)

  - 서버 측에서 동적인 웹 페이지를 생성하기 위한 기술 (Java + HTML)

  - 템플릿 엔진

  - HTML 문서 안에 자바 코드를 포함시킬 수 있는 자바 기반의 서버 사이드 스크립트 언어

      (서버 사이드 스크립트 언어 : 웹 서버 옆에서 작동하는 언어)

 

#  동작 과정

  1. 클라이언트가 웹 브라우저를 통해 JSP 페이지에 접속함

  2. JSP 컨테이너(Tomcat)는 JSP 파일을 읽어 Java 코드로 변환하고, 컴파일해서 Servlet 클래스 파일 생성

  3. 생성된 Servlet 클래스 파일을 실행해서 동적인 HTML 문서 생성해서 클라이언트에게 전송

 

 


Servlet (서블릿)

  - 클라이언트로부터의 요청을 처리하고, 그 결과를 HTML 페이지 형태로 보내주는 역할

  - 웹 컨테이너 안에 있는 각각의 클래스(객체)

  - 웹 컨테이너 안에 실제 동작하는 객체가 올라가면 'Servlet'이라고 부름

  - 사용하지 않는 Servlet은 나중에 가비지 컬렉터가 처리함

      → WAS는 Servlet도 관리함

 

  - Servlet은 스레드 기반으로 동작함 (멀티스레딩 지원)

      · 하나의 Request가 올 때마다 독립적인 스레드가 생성되어 각각의 스레드가 응답함

          → 서버의 리소스를 효율적으로 활용 가능 & 여러 사람이 동시에 접근 가능

      · 각 클라이언트 요청은 새로운 쓰레드에서 처리됨

      · 여러 쓰레드가 공유하는 변수를 사용하지 않는 것이 좋음

 

  - 플랫폼 독립적임

      : Java로 작성되므로, Java가 설치된 모든 플랫폼에서 동작 가능

  - 초기에 로드되고 나면 메모리에 상주함

      → 클라이언트의 요청이 있을 때마다 새로운 프로세스를 생성하는 CGI 스크립트와 달리 빠르게 응답 가능

 

#  Servlet Life-Cycle

  - init() : 처음 생성되는 과정 (웹 서버에 로드되는 순간)

  - service() : 일하는 단계

  - destroy() : 종료하는 단계

 

  ⇒ 생성자 → init()은 처음 연결되었을 때만 실행됨

       service()는 연결될 때마다 실행됨

       destroy()는 메모리가 해제되면 실행됨

 

 


경로 설정 방식

#  path

  - 서버에 접근해서 찾는 방식 (URI)

  - 루트 컨텍스트(프로젝트명)를 기준으로 시작

  - http:// ...

  - 상대 경로 : /로 시작하지 않음

  - 절대 경로 : /로 시작함

#  docBase

  - 폴더에 접근해서 찾는 방식

  - 폴더 루트(Wep-app)를 기준으로 시작

  ex) C:\ ...

320x100
반응형

댓글