JSP 정의와 구성 요소

허다람·2022년 3월 1일
0

Spring

목록 보기
2/5
post-thumbnail

JSP 등장 배경

서블릿 기능 중 별도로 기능을 디자이너가 작업하기 쉽게 하기 위해 JSP가 등장했다.

문제점

  • 웹 프로그램의 화면 기능이 복잡해지므로 서블릿의 자바 기반으로 화면 기능 구현 시 어려움이 발생한다.
  • 디자이너 입장에서 화면 구현 시 자바 코드로 인해 작업이 어렵다.
  • 서블릿에 비즈니스 로직과 화면 기능이 같이 있다 보니 개발 후 유지관리가 어렵다.

해결책

  • 서블릿의 비즈니스 로직과 결과를 보여주는 화면 기능을 분리한다.
  • 비즈니스 로직과 화면을 분리함으로써 개발자는 비즈니스 로직 구현에 집중하고, 디자이너는 화면 기능 구현에만 집중한다.
  • 개발 후 재사용성과 유지관리가 훨씬 수월해진다.

JSP의 구성 요소

JSP는 HTML과 CSS와 자바스크립트를 기반으로 JSP에서 제공하는 여러 가지 구성 요소들을 사용해 화면을 구현하는 기술이다. 주로 웹 프로그램의 화면 기능과 모델2 기반 MVC에서 뷰(View) 기능을 담당한다.

JSP의 구성요소

  • HTML 태그, CSS 그리고 자바스크립트 고드
  • JSP 기본 태그
  • JSP 액션 태그
  • 개발자가 직접 만들거나 프레임워크에서 제공하는 커스텀 태그

JSP의 3단계 작업 과정

톰캣 컨테이너에서 JSP 변환 과정

  1. 변환 단계 : 컨테이너는 JSP 파일을 자바 파일로 변환한다.
  2. 컴파일 단계 : 컨테이너는 변환된 자바 파일을 클래스 파일로 컴파일한다.
  3. 실행 단계 : 컨테이너는 class 파일을 실행하여 그 결과(HTML, CSS와 자바스크립트 코드)를 브라우저로 전송해 출력한다.

브라우저에서 JSP 파일을 요청하면 톰캣 컨테이너는 요청된 JSP 파일을 자바 파일(.java)로 변환한다.
그리고 변환된 자바 파일을 클래스 파일(.class)로 컴파일한다.
이 클래스 파일을 실행하여 브라우저로 결괏값을 전송하면 JSP가 브라우저 화면에 표시된다.
즉, 브라우저로 전송되는 결과는 HTML, CSS와 자바스크립트로 변환된 파일이다.

JSP 페이지 구성 요소

JSP 페이지에서 사용되는 여러 가지 구성 요소는 다음과 같다.

  • 디렉티브 태그
  • 스크립트 요소
  • 표현 언어
  • 내장 객체
  • 액션 태그
  • 커스텀 태그

디렉티브 태그

디렉티브 태그는 주로 JSP 페이지에 대한 전반적인 설정 정보를 저장할 때 사용하는 태그이다.

디렉티브 태그의 종류

  • 페이지 디렉티브 태그 : JSP 페이지의 전반적인 정보를 설정할 때 사용한다.
  • 인클루드 디렉티브 태그 : 공통으로 사용하는 JSP 페이지를 다른 JSP 페이지에 추가할 때 사용한다.
  • 태그라이브 디렉티브 태그 : 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용한다.

페이지 디렉티브 정의와 사용법

페이지 디렉티브 태그로 설정하는 여러가지 JSP 속성
속성기본값설명
info없음페이지를 설명해 주는 문자열을 지정
language"java"JSP 페이지에서 사용할 언어 지정
contentType"text/html"JSP 페이지 출력 형식 지정
import없음JSP 페이지에서 다른 패키지의 클래스를 임포트할 때 지정
session"true"JSP 페이지 HttpSession 객체의 사용 여부 지정
buffer"8kb"JSP 페이지 출력시 사용할 버퍼 크기 지정
autoFlush"true"JSP 페이지의 내용이 출력되기 전 버퍼가 다 패워질 경우 동작 지정
errorPage"false"JSP 페이지 처리 도중 예외가 발생할 경우 예외 처리 담당 JSP 페이지 지정
isErrorPage"false"현재 JSP 페이지가 예외 처리 담당 JSP 페이지인지 지정
pageEncoding"ISO-8859-1"JSP 페이지에서 사용하는 문자열 인코딩 지정
isELIgnored"true"JSP 2.0 버전에서 추가된 기능으로 EL 사용 유무 지정

페이지 디렉티브 형식

페이지 디렉티브 형식은 다음과 같이 <%@page %> 안에 속성과 값을 나열한다.

<%@ page 속성1="값1" 속성2="값2" 속성3="값2"...  %>

이클립스에서 jsp 페이지를 만들면 자동으로 생성되는 페이지 디렉티브이다.

<%@ page contentType="text/html; charset=utf-8"
            import="java.util.*"                    // 임포트할 패키지
            language="java"                         // 사용할 언어
            session="true"                          // 페이지에서 HttpSession 객체의 사용여부
            buffer="8kb"                            // buffer의 크기 jsp페이지의 출력 크기
            autoflush="true"                        // buffer가 다 채워질 경우 동작을 지정
            isThreadSafe="true"                     // 하나의 jsp페이지가 동시에 여러부라우저의 요청을 처리할수 있는지 여부
            info="(shoppingMall..............)"     // 페이지를 설명해주는 문자열
            isErrorPage="false"                     // 현재 페이지가 에러 처리를 담당하는 페이지 인지
            errorPage="" $>

인클루드 디렉티브 태그

jsp 페이지로 웹 페이지를 만들다 보면 제목이나 로고를 표시하는 상단, 메뉴를 표시하는 왼쪽 단은 화면이 바뀌더라도 일정하게 유지되는 경우가 많다.
JSP에서는 공통으로 사용되는 JSP 페이지를 미리 만들어 놓고 다른 JSP 페이지 요청 시 인클루드 디렉티브 태그를 사용한다.

인클루드 디렉티브 태그란 여러 JSP 페이지에서 사용되는 공통 JSP 페이지를 만든 후 다른 JSP 페이지에서 공통 JSP 페이지를 포함 시켜 사용하는 기능을 말한다.

인클루드 디렉티브 태그의 특징

  • 재사용성이 높다.
  • JSP 페이지의 유지관리가 쉽다.

인클루드 디렉티브 태그 형식

<%@ include file="공통기능.jsp"   %>
profile
나 java봐라

0개의 댓글