[JSP]정리노트

Troy·2023년 5월 30일

JSP의 특징

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

JSP의 장점

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

JSP의 단점

  • 화면 구성요소를 변경하면 JSP-> 자바-> 클래스-> 서블릿 실행 과정을 거치므로 개발 과정에서 사소한 UI변경일지라도 매번 확인하는데 시간이 소요됨
  • 개발자와 디자이너 간 역할 분담에 제약이 있음
  • JSP 파일의 화면 디자인 확인에도 반드시 서블릿 컨테이너의 실행이 필요함

지시어란?

  • DIrectives
  • JSP 파일의 속성을 기술하는 요소
  • JSP 컨테이너에 해당 페이지를 어덯게 처리해야 하는지를 전달하는 내용을 담음
  • 지시어는 크데 page,include,taglib으로 나눔

page지시어

  • 현재 JSP 페이지를 컨테이너에서 처리(서블릿으로 변환)하는 데 필요한 각종 속성을 기술함
  • 소스코드 맨 앞에 위치하며 이클립스에서 JSP파일을 생성할 때 자동으로 생성됨.

include 지시어

  • 다른 파일을 포함하기 위한 제시어
  • 사용된 위치에 특정 파일(html,jsp)을 불러옴
  • 컨테이너에서는 포함된 파일을 하나로 처리하며 자바 소스를 생성한 뒤 서블릿으로 컴파일.
  • 코드 재사용이 용이, 중복코드 제거

-> 절대경로를 사용하는것이 효율적

taglib지시어

  • JPS의 태그 확장 매커니즘인 커스텀태그를 사용하기 위한 지시어

uri : 태그 라이브러리 위치로 태그를 정의하고 있는 .tld파일 경로를 나타냄
tagdir : 태그 파일로 태그를 구현한 경우 태그 파일 경로를 나타냄
prefix : 해당 태그를 구분해서 사용하기 위한 접두어

템플릿 데이터란?

  • JSP의 화면 구성요소를 의미함
  • 시작 부분의 page 지시어를 제외하면 JSP파일의 전반적인 구조는 HTML의 문서 구조를 따름. 따라서 일반적인 HTML파일처럼 CSS , 자바스크립트도 사용할 수 있음.

스크립트 요소

  • JSP는 HTML과 자바 코드를 섞어 사용할 수 있는데, 이때 사용되는 자바 코드를 의미함.
  • 자주 쓰이는 스크립트 요소 : <!% %>, <%= %>, <% %>

<!% %>
선언(Declaration)태그

  • JSP가 서블릿 코드로 변환될 때 _ JspService()메서드 안에 들어가게 되므로 JSP에서는 일반 자바 코드와 달리 멤버 변수나 메서드 선언은 기본적으로 불가능함.

<%= %>

  • 표현(Expression)태그
  • 웹 브라우저를 통해 클라이언트에 전달될 (HTML응답에 포함될) 자바 표현식을 포함
  • 사칙연산, 메서드호출, 변숫값 출력등에 사용됨.
  • EL로 대체할 수 있음.

<% %>

  • 스크립트릿(Scriptlet) 태그
  • 모든 자바코드의 사용이 가능함
  • MVC패턴 적용과 JSTL+EL로 대체할 수 있음.

액션(Action) 태그

  • JSP에서 객체 생성과 공유, 페이지 이동과 전달, 태ㅔ그 파일 작성 등에 필요한 기능을 제공하는 일종의 커스텀 태그
  • 표준 액션이라고도 불리며 커스텀 태그 기반이지만 별도의 taglib 지시어 사용 없이 jsp 접두어를 사용함

자바 빈(Java Bean)

  • 자바의 재활용 가능한 컴포넌트 모델을 의미함.
  • private 멤버 변수와 getter/setter 메서드로 구성할 수 있음

useBean액션

  • JSP에서 자바 빈 객체를 생성하거나 참고하기 위한 액션
  • 매우 유용하지만 JSP를 단순히 부 역할로만 사용한다면 사용할 일은 없음.

useBean을 주로 활용하는 경우

  • HTML 폼에서 입력한 값을 자바 객체로 연동할 때 주로 활용함
  • 혹은 데이터베이스와 연동할 때 사용

Include 액션

  • 다른 페이지를 포함한다는 점에서 iclude 지시어와 동일하지만 처리 과정에서 차이가 있음
    지시어 : iclude된 파일 구조를 모두 포함해 하나의 파일로 컴파일한 다음 처리
    액션 : include된 파일을 각각 호출해 처리된 결과만 포함해 보여줌

forward 액션

  • 클라이언트 요청을 다른 페이지로 전환하는 액션
  • 리디렉션 과 기능적으로 유사하지만 내부적으로는 차이가 있음.
  • 최초 request를 유지하거나 request의 setAttribute()로 속성값을 저장하고 유지하면서 페이지를 이동하는 경우 - forward 액션이 적합

커스텀태그란?

  • Custom Tag
  • 사용자 정의 태그를 의미함.

EL이란?

  • 표현 언어 (Expression Language, EL)
  • 현재 페이지의 자바 객체 혹은 scope object에 저장된 자바 빈 객체를 손쉽게 접근하고 사용할 수 있게 함
  • EL은 단순한 출력 외에도 사칙연산, 비교연산, 논리연산, 3항 연산 등을 지원함
  • 데이터를 표현하기 위한 용도로 설계되었지만, 제한된 객체 참조가 가능하며 해당 객체의 메서드 호출이 가능함
profile
코린이 N년차입니다

0개의 댓글