[JSP] JSP(Jakarta Server Pages)

DevelopHeo·2024년 12월 18일
0
post-thumbnail
  • JSP(Jakarta Server Pages) : HTML 내에 자바 코드를 삽입
  • 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저를 돌려주는 서버 사이드 스크립트 언어이다.
  • Java EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다.

✏️ JSP

  • JSP란 JavaServer Pages의 약자를 뜻하며, HTML 코드에 JAVA 코드를 사용하여 동적 웹페이지(Dynamic Web Page)를 생성하는 웹 어플리케이션 도구(라이브러리)이다.

  • JSP가 실행되면 자바 "Servlet"으로 변환이 되며, 웹 어플리케이션 서버에서 동작되게 되며, 생성된 데이터들을 웹페이지와 클라이언트를 통해 응답을 한다.

JSP 동작 흐름

  • 최초 jsp 요청 시
  • jsp file 변경 시
  • jsp가 servlet으로 변경 됨

실제 실행되는건 servlet이 실행된다. - was가 알아서 작업해주는 거다.

코딩할 때의 장점 + 실행할 때의 장점을 다 합친게 JSP이다.

✏️ JSP vs Java Servlet

Servlet

  • 자바 코드로 구현하고, 컴파일하고, 배포해야한다.
  • HTML 태그로 문자열("")스크림으로 처리해야 한다.
  • 코드가 수정되면 다시 컴파일하고 배포해야 한다.

JSP

  • 키워드가 태그화 되어 Servlet에 비해서 배우기 쉽다.
  • 자바코드를<% %>태그 안에 처리해주어야 한다.
  • HTML처럼 태그를 사용하여 자바코드도 사용이 가능하다.

초기의 자바 웹개발은 Servlet만을 이용한 개발이었지만 이후 JSP기술이 발표되면서 JSP형태의 개발이 점차 발전하게 되었고, 지금의 Servlet + JSP 형태로 각각의 역할을 나누어 개발을 하는 방식이 이루어지고 있다.

✏️ JSP Scriptlet(스크립트릿)

구분JSP 태그용도
지시자<%@ %>페이지 속성 지정
주석<%-- --%>주석 처리
선언<%! %>변수, 메소드의 선언
표현식<%= %>결과값 출력
스크립트릿<% %>JAVA 코드 삽입
액션태그<jsp:action> </jsp:action>페이지 삽입, 공유, 자바빈 사용 등

1. 선언문(Declaration)
  • 멤버변수 선언이나 메소드를 선언하는 영역

ex) <%! 멤버변수와 method작성 %>


2. 스크립트릿(Scriptlet) 처리문

  • Client 요청 시 매번 호출 영역으로, Servlet으로 변환 시 service() method에 해당되는 영역.
  • request, response에 관련된 코드 구현

ex) <% java code %>


3. 표현식(Expression)

  • 데이터를 브라우저에 출력할 때 사용

ex) 안녕 <%= name %>!!!


4. 주석
  • 코드 상에서 부가 설명을 작성.

ex) <%-- 주석할 code --%>


5. 지시어
  • 페이지 속성 지정

ex) <%@ %>

✏️ JSP 기본(내장)객체

내장 객체(implicit object)

  • JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체
  • JSP 페이지가 서블릿 프로그램으로 번역될 때 JSP 컨테이너가 자동으로 내장 객체를 멤버 변수, 메소드 매개변수 등의 각종 참조 변수(객체)로 포함
  • JSP 페이지에 별도의 import문 없이 자유롭게 사용 가능
  • 스크립틀릿 태그나 표혀문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출하여 사용 가능

JSP 기본객체

  • JSP기본객체는 Page, Request, Session, Application이있다.
    이들은 기본 객체이자 자바 웹 앱의 4개의 영역(scope)이다.

1. page(pageContext)

  • 하나의 JSP페이지
  • 페이지는 하나의 JSP이므로, 한 페이지에서 다른 페이지의 정보를 사용할 수 없다.

2. request

  • 하나의 http요청 정보
  • 클라이언트로부터 오는 한번의 요청과 관련된 영역으로, 브라우저가 결과를 받으면 요청했던 request객체는 사라짐.
  • 하나의 요청 처리하는데 모든 JSP를 포함한다.

3. session

  • 하나의 브라우저
  • 세션은 하나의 브라우저(Chrome, Internet, Microsoft Edge 등) 내에서만 정보/값 공유한다.
  • 주로 로그인 정보/상태를 유지할때 사용함.

4. application

  • 하나의 웹 애플리케이션
  • 애플리케이션은 모든 유저, 모든 페이지, 페이지 요청, 세션에 공유될 수 있음.
  • 모든 JSP에서 사용가능

0개의 댓글