티스토리 뷰

반응형

강사 : 김호진 강사님



 JSP(Java Server Pages)

JSP의 개념

1. Java Server Pages : 웹 프로그램 작성 언어의 한 종류.

2. JSP(Java Server Pages) 는 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. Java EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다.

3. JSP(Java Server Pages) 는 동적(Dynamic)인 웹 페이지를 비교적 간단히 만들 수 있는 방법을 제공하는 자바를 기반으로 하고 있는 스크립트 언어(Server Side Script)로 자바 엔터프라이즈 애플리케이션에서 UI(User Interface) 영역을 탐당하고 있다.

4. JSP(Java Server Pages) 는 실행 시에는 자바 서블릿(Servlet)으로 변환 후 실행되므로 서블릿(Servlet) 과 거의 유사하다고 볼 수 있다. 하지만, 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 디자인(구조)하기에 편리하다. 이와 비슷한 구조인 것으로 PHP, ASP, ASP.NET 등도 있다.

5. JSP(Java Server Pages) 는 자바를 서버 환경에서 사용하는 스크립트 방식의 언어로 단일 스레드로 클라이언트의 요청에 서비스한다.

요청이 있을 때 마다... 즉, 객체가 생성될 때 마다... 프로세스를 생성하는 기존의 CGI 와는 달리 하나의 메모리를 공유하면서 서비스되는 원리를 가지고 있다.

이러한 원리는 서버측의 부하를 줄여주며, JSP 내부에는 보여주는 코드만 작성하고 직접 작업하는 부분은 자바 빈으로 구성하여 둘을 분리할 수 있다.

이는 서로 영향을 주지 않으면서 수정할 수 있는 장점을 취하며, JAVA 가 갖고 있는 장점에 해당하는 재사용성을 높을 수 있도록 한다.

클라이언트              <------------->   서버

HTML, CSS, Javascript   <------------->   JSP(JAVA)

브라우저(IE, FF, CR)    <------------->   웹서버(톰캣), 오라클

요청                    <------------->   응답

6. 아파치 스트럿츠나 자카르타 프로젝트의 JSTL 등의 JSP 태그 라이브러리를 사용하는 경우에는 자바 코딩 없이 태그만으로 간략히 기술하는 것이 가능하기 때문에 생산성을 높일 수 있다.

JSP 실행 구조

  • 1단계. 웹 클라이언트에서 웹 서버에 웹 프로그램 요청.
  • 2단계. 웹 서버에서 클라이언트가 요청한 JSP 프로그램 로드.
  • 3단계. JSP 페이지에 대한 변환 실행 이 과정에서 일반 『.java』인 파일로 변환된다. → Servlet
  • 4단계. 『.java』인 파일로 변환된 서블릿(Servlet)의 컴파일 및 실행. 이 과정에서 『.java』인 파일을 기반으로 『.class』인 파일 형태로 파생된다.
  • 5단계. 실행 결과로 동적 생성된 HTML Document 를 클라이언트측에 응답(전달). (.class 파일 실행)
  • 6단계. 웹 클라이언트는 응답받은 HTML Document 를 브라우저에서 웹 페이지 형태로 출력 (브라우저에서 번역 작업 수행) => 클라이언트에서 서비스가 요청되면 JSP 의 실행을 요구하고, JSP 는 웹 애플리케이션 서버의 서블릿 컨테이너에서 서블릿 원시 코드로 변환된다. 그 후에 서블릿 원시 코드는 바로 컴파일된 후 실행되어 결과를 HTML 형태로 클라이언트에게 돌려주게 된다.

이클립스 JSP 개발 환경 구축

1) 프로젝트(new) 생성 시 『Dynamic Web Project』 선택

2) 프로젝트 명 입력 시 식별자 작성 규칙을 준수

3) Target Runtime 지정 → 톰캣 설치 디렉터리 연결

※ 실제 실무 프로젝트에서는 웹 어플리케이션 서버가 이클립스에 플러그인 형태로 설치되어 운영되는 것이 아니라... 단독으로 웹 서버가 구축되고 이 환경에 맞게 개발이 이루어지게 된다. 또한, 아파치 톰캣 이외의 다른 웹 어플리케이션 서버를 사용할 수 있다.

4) 프로젝트 생성 후에는 Server 탭에서 톰캣 서버 등록 (단, 서버를 새로 등록했을 경우 서버 관련 설정을 재구성)

5) 톰캣 서버에 프로젝트 등록 → add and remove

6) 톰캣 서버 시작(재시작)

※ 이 시점에서... 포트번호 설정 및 확인 필요

(현재의 실습 환경은... 아파치 톰캣의 포트번호를 변경한 상태)

(실무에서는 오라클 포트번호를 변경해서 사용하기도 함)

7) JSP 페이지 작성(확장자 『.jsp』)

→ WebContent 디렉터리 하위에 작성

※ 페이지 작성 전에 Encoding 방식을 확인하고 설정한다. (UTF-8)

※ JSP 기본 페이지는 (현재 이클립스 Oxygen.2 Release (4.7.2) 버전) default 값으로 HTML 4.01 로 작성되어 있다. HTML 5 로 변경을 해야 할 상황이라면 JSP 템플릿을 수정한 이후에 작업한다.

8) 톰캣 서버가 실행되고 있는 상태에서 웹 브라우저의 URL 주소 창에 다음과 같은 주소를 요청한다. (클라이언트 입장)

  • http://서버주소:포트번호/프로젝트명/파일이름.jsp
  • http://<내 서버 IP>:8090/WebPrj03/NewFile.jsp

※ 관찰

  • First.jsp 생성 및 구성 이후

  • 브라우저를 통해 해당 페이지 구성 내용 확인

  • 우리가 클라이언트에게 전달할 내용을 직접 그리는 것이 아니라 이와 같은 방식으로 그려달라고 대필자(Servlet)에게 주문서를 작성하는 것.

  • 확장자가 html 인 형태로 작성된 파일은 우리가 직접 그린 문서를 클라이언트에게 바로 전달했다면 jsp 는 우리가 제안만 할 뿐 직접 그리는 것이 아니라는 것을 파악하고 있어야 한다.


JSP 구성 요소

디렉티브(지시어) directive

페이지에 대한 설정 정보 지정. 클래스 속성 변경.

<%@        %>

○ page

페이지에 대한 기본 정보 입력.(생성하는 문서의 타입, 출력 버퍼의 크기, 에러 페이지 등)

현재 문서를 나타내는 객체.

page 디렉티브는 JSP 페이지와 관련된 속성을 정의하고 이 속성들은 웹 컨테이너에 정보를 제공한다.

또한 한 페이지에 page 디렉티브는 한 번 이상 나올 수 있고 위치도 관계가 없다.

하지만 보통 상단에 기술한다.

- 주요 속성

  • language : 스크립트 코드에서 사용되는 프로그래밍 언어 지정

  • contentType : 생성할 문서 타입

  • import : 사용할 자바 클래스 지정

  • session : 세션 사용 여부 지정

  • buffer : 출력 버퍼 크기 지정

  • autoFlush : 출력 버퍼가 다 채워졌을 경우 자동으로 버퍼에 있는 데이터를 출력 스트림에 보내고 비우고 만들지에 대한 설정 여부 지정

  • info : 페이지에 대한 설명

  • errPage : 실행 도중 에러 발생 시 보여줄 페이지 지정

  • pageEncoding : 페이지 자체의 캐릭터 인코딩 지정

○ taglib

태그 라이브러리(tag library)

사용자가 만든(정의한) 태그 모음(사용자가 직접 기능 설정)

○ include

다른 문서를 포함하는 기능

여러 JSP 페이지에서 공통적으로 포함하는 내용이 있을 때 이러한 내용을 매번 반복해서 입력하지 않고 별도의 파일을 저장해 두었다가 JSP 파일에 삽입하도록 하는 것이다. → 생산성 향상

include 디렉티브의 처리 과정은 정적으로 include 지시자를 사용한 JSP 페이지가 컴파일 되는 과정에서 include 되는 JSP 페이지의 소스 내용을 그대로 포함해서 컴파일한다.

즉, 복사&붙여넣기 방식으로 두 개의 파일을 하나로 구성한 후 같이 변환되고 컴파일된다.

스크립트 요소

○ 스크립트 릿(Scriptlet : 스크립릿 : 스크립틀릿)

JSP 에 JAVA 코드를 기술

<%      %>

JSP 문서 내에 JAVA 코드를 기술하는 부분이기 때문에 오로지 자바 코드만 올 수 있다.

스크립트 릿에 선언된 변수는 지역 변수의 성격을 가지게 되며

자바에서 메소드 내에 선언된 변수라고 할 수 있다.

○ 표현식(Expression)

HTML 문서 결과값에 포함시키고자 할 때 사용(브라우저에 등장시킬 수 있는 영역)

<%=     %>

○ 선언부(Declaration)

스크립트 릿이나 표현식에서 사용할 함수를 작성할 때 사용

<%!     %>

스크립트 릿이나 표현식에서 사용 가능한 변수나 메소드를 정의하는 부분이기 때문에 선언부에서 선언된 변수는 서블릿으로 변환되는 과정에서 멤버 변수의 입장을 취하게 되며 전역 변수의 성격을 가진다.

또한, 『_jspInit()』,『_jspDestroy()』 와 같은 생명주기 운영을 위해 메소드를 재정의할 수 있다.


참고 사항

Servlet은 자바 틀 내부에 HTML 코드가 들어있다. M(Model)과 C(Controller)를 만들기 좋음

JSP는 HTML 틀 내부에 JAVA 코드가 들어있다. V(View)를 만들기 좋음

=> JSP와 Servlet을 섞어서 사용

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함