티스토리 뷰

반응형
목차
JSP의 처리 과정
출력 버퍼
웹 어플리케이션 디렉터리 구성과 URL
웹 어플리케이션 배포

JSP 처리 과정

0. 클라이언트에서 요청을 보내옴

1. JSP에 해당하는 서블릿이 존재하지 않을 경우 : JSP 페이지를 컴파일하여 서블릿을 생성한 후, 생성된 서블릿을 사용해 클라이언트 요청을 처리함

2. JSP에 해당하는 서블릿이 존재하는 경우, 곧바로 서블릿을 사용하여 클라이언트의 요청을 처리함

> 즉, JSP 페이지를 요청하는 것은 JSP를 직접적으로 실행하는 것이 아니다.
JSP ➡️ 자바 소스 코드로 변환 ➡️ 컴파일 ➡️ 생성된 서블릿을 실행하는 것! 

변환(translation) 단계 : JSP페이지 => 자바 코드로 변경
컴파일(compile) 단계 : 자바 코드 => 서블릿 클래스로 변경

 

> JSP가 자바 소스 코드로 변환 : 클래스로 바뀜 (물론, 메서드도 클래스에 들어가게 됨)
> 스크립트릿(JSP 페이지에서 자바 코드를 실행할 때 사용되는 코드의 블록 <%  자바 코드 %>) 내부에 들어간 것들은 'jspService'라는 메서드 안에 들어가게 됨 : 멤버 메서드가 됨
> <%=> : out.print로 바뀜
> JSP는 그 자체로 실행되는 것이 아니라, 자바파일로 바뀌고, 컴파일된 클래스가 실행된다는 것을 알아둬야 함


servelet 서블렛이란?

Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술
웹을 만들 땐 다양한 요청(Request)와 응답(Response)가 있음. 그리고 이 요청과 응답에는 규칙이 존재한다.
서블릿은 이러한 요청과 응답을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술

 

 

- Server - project-오른쪽버튼-clean module work directory : 내가 JSP로 실행한 컴파일된 자바 파일들이 모두 삭제됨


출력 버퍼와 응답

출력 버퍼 : JSP가 생성한 응답 결과를 임시로 저장
JSP 페이지는 생성된 결과를 곧바로 웹 브라우저에 전송하지 않는다.
출력 버퍼(buffer)로 불리는 곳에 임시로 출력 결과를 저장했다가 한 번에 웹 브라우저로 전송한다.

 

출력 버퍼의 장점

  • 데이터 전송 성능 향상: 작은 단위X, 한 번에 큰 단위로 데이터를 전송하기 때문.
  • 버퍼가 다 차기 전까지 헤더 변경 가능 : 그러나 일단, 버퍼 내용이 웹 브라우저에 전송되면 그 이후로는 헤더 정보 변경해도 적용X
  • JSP 실행 도중 버퍼를 비우고 새 내용 전송 가능 : JSP 실행 과정에서 에러가 발생할 경우, 지금까지 생성 내용을 버퍼에서 지우고 에러 화면을 출력할 수 있음

page 디렉티브의 buffer 속성

buffer 속성

  • <%@ page buffer="8kb" %> : 버퍼 크기를 8KB로 지정
  • <%@ page buffer="none" %> : 버퍼 사용 안함
    - <jsp:forward> 기능사용 못함 
    출력 내용 취소 불가

 

버퍼 처리 과정


page 디렉티브의 autoFlush 속성

버퍼가 다 찼을 때 처리 방식 지정

  • true : 버퍼가 다 찼을 경우, 버퍼를 플러시하고 계속해서 작업을 진행함 (기본값)
  • false : 버퍼가 다 찼을 경우 예외 발생시키고 작업을 중지함

웹 어플리케이션 디렉터리 구성

wepapp 안에 WEB-INF는 매우 중요

- lib : 라이브러리

- web.xml : 내 웹어플리케이션에 대한 설정을 할 수 있음

- 실제 리얼은 ➡️ 톰캣 안에 ➡️ 웹앱 안에 들어가서 확인할 수 잇음

- 그러나 이클립스 쓰는 동안엔 옆에 뜨는거 보면 됨

 

Export 방법

- export : WAR file : wep archive : 아웃풋 ➡️ 파일 경로 지정하고 export source files 체크 ➡️ finish 하면 ezen.war 가 익스포트 됨

 

import 방법

import ➡️ war file ➡️ 선택하고 finish...! 하면 끝..!

 

Git은 더 편함..!!!

 

더보기

notepad++ : 메모장 보다 소스 보기 좋음

반응형
댓글