- 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에서 사용가능