본문 바로가기
컴퓨터과학[3-2]/J.S.P

JSP - [제4강] JSP 동작 원리

by boolean 2016. 7. 21.
728x90

JSP - [제4강] JSP 동작 원리

JSP 처리 과정, 출력 버퍼와 응답, 웹 어플리케이션 폴더 구성, 웹 어플리케이션의 배포, 서블릿 프로그래밍

JSP 용어정리

  • 출력버퍼
    기본적으로 JSP 페이지의 실행 결과는 곧바로 클라이언트에 보내지지 않고 버퍼링되어진다. 이때 임시 저장소로 사용되는 것을 출력 버퍼라 한다. 버퍼링이란 입출력 성능을 향상시키기 위해 어느 정도의 데이터를 모았다가 한꺼번에 처리하는 입출력 방식을 말한다.
  • page 지시어
    JSP 컨테이너가 응답 페이지를 작성할 때 필요한 JSP 페이지의 속성을 명시하기 위해 page 지시어가 사용된다. 그리고 페이지 실행 과정에서 버퍼링 여부나 오류 페이지 여부를 정할 때도 사용된다.
  • WAR
    Web Application aRchive의 약자로 JAR 파일 형태로 웹 모듈을 배포하기 위해 필요한 파일들을 묶은 것이다. 이것은 웹 컨테이너에 배포되며, 내용과 목적이 JAR 파일과 다르므로 WAR 파일의 확장자는 .war이다.
  • 응답
    서버가 클라이언트에게 전달하는 데이터이다. 웹 컨테이너는 응답을 만들기 위해 내장 객체 response를 서블릿에게 제공한다. response 객체는 HttpServletResponse 인터페이스를 구현한 객체이다. ServletResponse 인터페이스는 출력 스트림을 제공하는 메소드, 컨텐츠 타입과 버퍼 크기를 정하는 메소드를 제공하고, HTTP 응답을 위한 HttpServletResponse 인터페이스는 응답 헤더와 관련된 필드와 메소드를 포함하고 있다.
  • 서블릿
    클라이언트의 요청을 처리하여 응답을 만들어 주기 위한 서버 측 어플리케이션이다. 이것은 Java 언어로 작성된 클래스이며 주로 HTTP 요청을 처리하기 위해 사용된다. javax.servlet과 javax.servlet.http 패키지가 서블릿 작성을 위한 인터페이스와 클래스를 제공한다.

요점정리

  1. JSP 페이지에 대한 요청이 들어오면, JSP 페이지는 서블릿 프로그램으로 변환되고 컴파일되어 실행된 후, 그 결과가 클라이언트에 응답으로 전송한다.
  2. 응답 결과를 만들 때, 즉시 클라이언트로 결과를 전송하지 않고 출력 버퍼에 임시 저장할 수 있다. 실행이 끝나거나 버퍼가 차면 클라이언트로 결과를 전송하여야 한다.
  3. page 지시어를 통해 JSP 컨테이너에게 페이지의 속성과 실행 옵션을 알려줄 수 있다.
  4. WEB-INF 폴더에는 웹 어플리케이션 설정 정보를 담고 있는 web.xml 파일이 저장된다. WEB-INF\classes 폴더에는 웹 어플리케이션에서 사용되는 클래스 파일이, WEB-INF\lib 폴더에는 .jar 파일들이 저장된다.
  5. 개발된 웹 어플리케이션을 실제 서버에 배포하려면 이클립스를 이용하여 WAR 파일로 묶어서 배포하면 된다.
  6. 서블릿 클래스에는 doGet() 또는 doPost() 메서드가 구현되어야 한다. GET 방식으로 접근할 때 doGet() 메서드가 실행되며, POST 방식으로 접속할 때는 doPost() 메서드가 실행된다.

연습문제

  • 연습문제1
    JSP 페이지에 대한 클라이언트 요청의 처리 과정을 설명한 것이다. 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    기본적으로 JSP 컨테이너는 JSP 페이지를 구현한 서블릿 클래스(.class)가 있는지 확인한다. 상응하는 서블릿이 없거나 JSP 페이지가 서블릿 클래스보다 새 것인 경우에 변환과 컴파일 작업을 수행한다.
  • 연습문제2
    웹 어플리케이션의 폴더 구성에 관한 설명이다. 올바른 것은?
    답을 체크하세요
    정답 :
    해설 :
    web.xml 파일은 WEB-INF에 위치하며 WEB-INF\lib에는 .jar 파일이 위치한다. 톰캣에서 웹 어플리케이션 폴더는 [톰캣설치폴더]\webapps의 하위 디렉터리로 만들어진다.
  • 연습문제3
    page 지시어에서 autoFlush 속성이 true인 경우가 의미하는 것은?
    답을 체크하세요
    정답 :
    해설 :
    autoFlush 속성이 true인 경우 버퍼가 차면 내용을 클라이언트로 전송하고 버퍼를 비운 후 작업을 계속 수행한다. autoFlush 속성이 false인 경우 버퍼가 차면 예외가 발생한다. 
  • 연습문제4
    HTTP 요청을 처리하기 위한 서블릿 프로그램의 작성에 관한 설명이다. 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    service() 메소드는 HTTP 요청 방식이 무엇이냐에 따라 적당한 메소드를 호출해 주는 기능을 하며 HttpServlet에 이미 정의되어 있다. 이것을 재정의할 이유는 거의 없다.
  • 연습문제5
    JSP 페이지로부터 생성되는 출력 내용을 웹 브라우저로 곧바로 전송하지 않고 버퍼링한다. 버퍼링과 관련된 설명으로 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    헤더 정보는 응답 몸체를 전송하기 전에 전송되어야 한다.



'컴퓨터과학[3-2] > J.S.P' 카테고리의 다른 글

JSP - [제6강] 내장 객체와 Scope  (0) 2016.07.21
JSP - [제5강] 요청과 응답  (0) 2016.07.21
JSP - [제3강] JSP 개요  (0) 2016.07.21
JSP - [제2강] 개발환경 설정하기  (1) 2016.07.21
JSP - [ 제1강] 웹과 자바  (0) 2016.07.21

댓글