JSP 개요

HH_Nebula·2023년 1월 19일
0

JSP는 서블릿의 화면단 처리의 어려움을 해결하기 위해 등장하였으며, HTML과 데이터를 조합하기 위해 다음과 같은 특징과 구성요소를 가진다.

JSP의 특징

  • HTML 페이지에 자바 코드를 직접 사용한다.
  • 서블릿 컨테이너에 의해 관리되는 내장객체의 생명 주기를 이용하여 페이지 간 속성을 관리한다.
  • 커스텀 태그 기술을 사용하여 코드를 태그화(action, JSTL 등)한다.
  • EL을 통해 데이터를 표현한다.

즉 JSP는 서블릿에서 데이터 표현의 불편함을 해결하기 위해 나온 뷰 템플릿 기술의 하나로, HTML 형식의 문서 구조에 자바 코드 혹은 다른 전용 표기법을 사용해 프로그램 요소를 쉽게 구현할 수 있도록 도와준다. 내부적으로는 서블릿으로 변환되어 실행되는 구조다.

JSP의 구성요소

  • 지시어
  • 액션
  • 템플릿 데이터
  • 스크립트 요소
  • 커스텀 태그와 EL

각각의 구성요소는 고유의 표기법과 속성을 가지지만 서블릿 형태의 소스로 변환되는 과정에서 자바 코드로 바뀌게 된다.

JSP의 동작과정

JSP는 기본적으로 HTML 문서의 텍스트 파일 형식을 가지지만 컴파일된 JSP는 단순한 파일이 아니라 컨테이너에서 서블릿 객체로서 관리된다. 다시 말해 컴파일이 완료되면 JSP는 더이상 파일로부터 처리되는 구조가 아니라 컨테이너에 로드된 서블릿으로 동작하는 구조가 되는 것이다. 따라서 서블릿 컨테이너는 JSP 파일을 서블릿 구조의 .java 소스코드로 변환하여 컴파일을 수행한다.

  1. hello.jsp 소스코드를 작성하고 웹 애플리케이션을 배포한다.
  2. 클라이언트 요청에 컨테이너는 해당 .jsp의 클래스 변환 여부를 확인한다.
  3. 변환되지 않았다면 hello_jsp.java 파일을 생성하고 .class로 컴파일한다.
  4. jspInit() 메서드를 통해 클라이언트 요청을 처리한다.
  5. _jspService() 메서드를 통해 클라이언트 요청을 처리한다.
  6. 컨테이너 종료 혹은 관리 도구에 의해 서블릿 jspDestroy() 호출로 종료된다.

JSP의 장점

  • HTML 파일에 자바 기술을 거의 무한대로 사용할 수 있으며, 비교적 쉽게 프로그래밍할 수 있다.
  • 커스텀 태그 라이브러리 등 JSP 개발에 도움이 되는 확장 태그 구조를 사용할 수 있다.
  • 서블릿으로 변환되어 실행되므로 서블릿 기술의 장점을 모두 가진다.
  • MVC 패턴, 스프링 프레임워크 등 잘 설계된 구조를 적용할 수 있어 체계가 잡히면 개발 생산성이 향상되고 성능이 보장된다.
  • 모든 개발이 서버에서 이루어지므로 개발의 집중화를 통한 효율이 있을 수 있다.

JSP의 단점

  • 화면 구송요소를 변경하면 JSP > Java > Class > Servlet 실행 과정을 거치므로 개발 과정에서 사소한 UI 변경일지라도 매번 확인하는 데 시간이 소요된다.
  • 개발자와 디자이너 간 역할 분담에 제약이 있다.
  • JSP 파일의 화면 디자인 확인에도 반드시 서블릿 컨테이너의 실행이 필요하다.
profile
공부하고 기록하고 복습하고

0개의 댓글