ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP란?
    프로그래밍 기초 공부 2022. 10. 17. 01:14

    열여덟 번째로 포스팅하게 될 내용은 JSP에 대한 내용입니다.

     

    [ JSP란? ]

    • JavaServer Pages 의 약자
    • HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구
    • JSP는 Servlet 기술의 확장형이라고 볼수 있음
    • Servlet을 보완한 스크립트 방식 표준으로, Servlet의 모든 기능 + 추가적인 기능 을 가짐

     

     

    [ JSP의 특징 ]

    • JSP를 통해 정적인 HTML과 동적으로 생성된 contents(HTTP 요청 파라미터)를 혼합하여 사용할 수 있음
      즉, 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성
    • JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행함
    • 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답해줌
    • 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술
      • JSP 는스크립트 언어이기 때문에 자바 기능을 그대로 사용할 수 있음
    •   JSP로 Thred 기능을 써서 클라이언트가 요구하는 메모리를 최초 한 번만 로드하여서 다른 사용자가 같은 메모리를 원한다면 Thred가 재사용되어 Response
    • 사용자 정의 태그(custom tags)를 사용하여, 보다 효율적으로 웹 사이트를 구성할 수 있음
    • JSTL(JSP Standard Tag Library, JSP 표준 태그 라이브러리)사용
    • HTML 코드 안에 Java 코드가 있기 때문에 HTML 코드를 작성하기 쉬움
      • HTML 속에서의 자바 코드는 <% %> 사이 혹은 <%= =%> 형태로 들어감
    • Servlet과 다르게 JSP는 수정된 경우 재배포할 필요 없이 Tomcat(WAS)이 알아서 처리함
    • 자바소스코드로 작성된 부분은 웹 브라우저로 보내는 것이 아니라 웹 서버에서 실행되는 부분으로 웹 프로그래머가 소스코드를 수정할 때도 디자인 부분을 제외하고 자바소스코드만 수정하면 되기 때문에 효율이 증가
    • 컴파일 과정을 할 필요없이 jsp 페이지를 작성해서 디렉토리에 추가만 하면 사용이 가능
    • JSP는 WAS(Web Application Server)에 의하여 서블릿 클래스로 변환하여 사용



    [ 자바 서블릿(Java Servlet) ]

    서블릿이란 웹페이지를 동적으로 생성하기 위해 서버측 프로그램을 말함
    이는 자바 언어를 기반으로 만들어지며 웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일 되고 동작함

     

     

    [ servlet 과 JSP의 차이 ]

    JSP 와 서블릿의 차이점은 결과적으로 하는일은 동일하지만
    JSP 는 HTML 내부에 JAVA 소스코드가 들어감으로 인해 HTML 코드를 작성하기 간편하다는 장점
    서블릿은 자바코드내에 HTML 코드가 있어서 읽고 쓰기가 굉장히 불편하기 때문에 작업의 효율성이 떨어짐

     

    Servlet

    • Java 코드 안에 HTML 코드 (하나의 클래스)
    • data processing(Controller)에 좋음
    • DB와의 통신, Business Logic 호출, 데이터를 읽고 확인하는 작업 등에 유용
    • HTML태그로 문자열("")스크림으로 처리해야 함
    • Servlet이 수정된 경우 Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이트하고 다시 컴파일한 후 재배포하는 작업이 필요함  -> 개발 생산성 저하

     

    JSP

    • HTML 코드 안에 Java 코드
    • presentation(View)에 좋음
    • 즉 요청 결과를 나타내는 HTML 작성하는데 유용
    • JSP가 수정된 경우 재배포할 필요가 없이 WAS가 알아서 처리해줌 -> 쉬운 배포
    • 키워드가 태그화 되어 서블릿에 비해 배우기 쉬움

     

     

    [ JSP만을 이용하는 모델 ]

    • JSP가 사용자의 요청을 받아 Java Bean(DTO, DAO)을 호출하여 적절한 동적인 페이지를 생성
    • 동작 과정
      • JSP로 작성된 프로그램은 내부적으로 WAS에서 Servlet 파일로 변환
      • JSP 태그를 분해하고 추출하여 다시 순수한 HTML 웹 페이지로 변환
      • 클라이언트로 응답
    •  특징
      • 개발 속도가 빠르다.
      • 배우기 쉽다.
      • 프레젠테이션 로직(View)과 비즈니스 로직(Controller)이 혼재한다.
      • JSP 코드가 복잡해져 유지 보수가 어려워진다.

     

    [ JSP와 Servlet을 모두 이용하는 모델 (MVC Architecture) ]

    • JSP와 Servlet을 모두 사용하여 프레젠테이션 로직(View)과 비즈니스 로직(Controller)을 분리
    • View(보여지는 부분)는 HTML이 중심이 되는 JSP를 사용
    • Controller(다른 자바 클래스에 데이터를 넘겨주는 부분)는 Java 코드가 중심이 되는 Servlet을 사용
    • Model은 Java Beans로, DTO와 DAO를 통해 Mysql과 같은 Data Storage에 접근

     

     

    [ JSP에서 동적인 코드를 호출하는 6가지 전략 ]

    1. Call Java code directly
      • Java 코드를 직접 호출
      • 모든 Java 코드를 JSP 페이지에 넣음
      • 아주 적은 양의 코드에만 적합한 전략
    2.  Call Java code indirectly
      • Java 코드를 간접적으로 호출
      • 별도의 utility class(Java Class)를 작성
      • utility class를 호출하는 데 필요한 Java 코드만 JSP 페이지에 넣음
    3.  Use beans
      • beans로 구조화된 별도의 utility class(Java Class)를 작성
      • jsp:useBean, jsp:getProperty, jsp:setProperty를 사용하여 utility class를 호출
    4.  Use the MVC architecture
      • MVC 아키텍처를 사용
      • Servlet(Controller)이 요청에 응답하고 적절한 데이터를 검색하여 결과를 beans(Model)에 저장
      • 위의 결과를 JSP 페이지(View)로 전달하여 결과를 표시
      • 즉, JSP 페이지는 bean을 사용
    5.  Use the JSP expression language
      • shorthand syntax를 이용하여 간단하게 객체 속성(property)에 접근하고 출력
      • 즉, jsp:useBean, jsp:getProperty, jsp:setProperty를 expression language으로 간단하게 표현할 수 있음
      • 일반적으로 beans, MVC 패턴을 함께 사용
    6.  Use custom tags
      • tag handler class를 만듦
      • XML과 같은 사용자 정의 태그(custom tags)를 사용하여 태그 핸들러를 호출

    '프로그래밍 기초 공부' 카테고리의 다른 글

    MPA와 SPA란?  (0) 2022.10.29
    AJAX란?  (0) 2022.10.17
    CGI란?  (0) 2022.10.14
    HeidiSQL(하이디 SQL)이란?  (0) 2022.10.10
    Servlet이란?  (0) 2022.10.10
Designed by Tistory.