본문 바로가기

Web

[공부] JSP

JSP

  • 특징
    • 프레젠테이션 로직과 비즈니스 로직의 분리
      • 웹 페이지의 디자인이 변경되더라도 내부 비즈니스 로직을 처리하는 코드를 변경할 필요가 없는 장점
      • 비즈니스 로직의 Javabeans컴포넌트 모델을 통하여 구현할 수 있다.
      • 컴포넌의 재사용 : 공통적으로 사용되는 컴포넌트를 만들어서 재사용할 수 있다.
    • JSTL, EL, 커스텀 태그 등을 활용한 개발 용이성
      • JSTL (Java Statandard Tag Library)
      • EL (Expression Language)
    • 서버 자원의 효율적 관리
      • 최초 요청시 컴파일을 통해서 서브릿이 구성되고 메모리에 적재
      • 이후, 이미 적재되어 있는 서블릿에서 바로 응답 줍니다.
  • 처리과정
    • 최초요청시 JSP파일을 서블릿으로, 서블릿클래스 컴파일 클래스파일을 메모리에 적재
    • 재요청시 적재된 Servlet클래스 이용합니다.
  • 스크립팅 요소
    • scriptlet : 자바코드 구현, 로컬변수
    • declaration : 변수, 메소드 선언 사용
    • expression : 간단한 데이터 출력이나 메소드 호출을 통한 데이터 출력
    • comment : 코드 상에 부가적인 설명을 덧붙이기 위해서 사용하다.
      • html 주석 :
      • JSP 주석 : < %-- --%>
  • 지시자(Directive)
    • JSP 페이지 자체에 대해서 JSP 엔진 및 컨테이너에게 각종 처리 정보 전달하고 수행해야 할 기능을 정함.
    • 태그 종류
      • Page : JSP페이즈를 어떻게 처리할 것인가
      • include: 공통적인 내용이 있을 때 매번 공통적인 내용을 삽입할 때
      • taglib : JAVA package
  • 기본 객체
    • 코드를 심플하게 만들어 주기 위해 자동 정의된 변수.
    • 종류
      • request : 요청
      • response :응답
      • pageContext
      • session
      • application
      • out
      • config
      • page
  • 활성범위와 정보공유
    • page scope : 각 페이지의 pageContext에 저장되고 객체를 생성한 JSP페이지를 통해서만 접근할 수 있다.
    • request scrope : HTTP요청이 있을 때 마다 Resquest 객체를 생성
    • session scope : 다수의 요청에 걸쳐 존재
    • application: ServletContext는 모든 애플리케이션에서 애플리케이션 객체를 조회하고 저장
  • JavaBeans
    • Java 객체 데이터베이스와 JSP 중간에서 데이터 관리의 매게체 역할
    • 데이터를 개체 단위로 한데 묶어서 관리하는 데에 편리성
  • Error
    • page 지시문 : errorPage, isErrorPage
    • : https 에러 코드별
    • : JAVA 고유의 예외 종류별 에러 페이지 지정
    • 우선순위 : page > error,exception > tomcat 엔진
  • 커스텀 태그(Custom Tag)
    • JSP 페이지에서 스크립팅 요소들로부터 자유롭게 반들어 준다.
    • 재사용성과 의존성(가독성이 높아진다)
    • 작성하는 것이 쉽지 않다.
  • JSTL
    • 커스텀 태그 라이브러리 모음, 자주 사용되는 것들을 모아서 표준으로 정한 것
    • 종류
      • core : 데이터 관리, 콘텐츠의 반복과 조건화
        • out, set, remove
        • catch, if
        • remove
      • format : 숫자와 날짜 포맷팅
      • xml : XML을 통해 표현된 데이터를 조작
      • sql : 관계형 데이터베이스를 쿼리
  • EL
    • 속성 값을 쉽게 출력하도록 고안
    • 표시법 -> ${value}
    • request, session, application 객체 순서로 해당 객체가 저장된 범위

'Web' 카테고리의 다른 글

[공부] MVC Pattern  (0) 2020.05.04
[공부] Servlet  (0) 2020.05.04
[공부] Web Application  (0) 2020.05.04