⭐ JSP페이지: UI (HTML+CSS+JavaScript) + JAVA코드
- JAVA코드는 <% %> (스크립트릿) 안에 구현한다
- 기자인 코드와 서버로직 코드를 가지고있는 페이지이다.
⭐ JSP 동작 방식의 특징
- 프로세스 방식이 아닌 스레드 방식으로 실행
- 클라이언트의 요구를 처리하는 기능은 최초 한 번만 메모리에 로드
- 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능 재사용
⭐ JSP 구성요소
1. 선언부: page 지시자 (사용언어, 인코딩, import 등)
2. 스크립트요소
스크립트릿 | <% %> | JSP 내부에 자바코드 삽입시 사용 |
표현식 | <%= %> | 출력 결과에 값을 넣을 때 사용 ( =을 response) |
선언부(scope page) | <%! %> | JSP 페이지 내부에 자바 메소드를 선언 (공통자원 정의) |
3. 지시어(디렉티브:directive)
<%@page ...%> | 페이지 정보 설정 / 스크립트언어, 에러페이지지정, 버퍼설정 등을 정의한다 |
<%@include ...%> | 특정 영역에 다른 문서를 포함 |
<%@taglib ...%> | 페이지에서 사용할 태그 라이브러리 설정 |
⭐ 내장객체 (사전 정의된 객체 / new 하지 않고 사용할 수 있는 객체!)
- request: 요청 객체 / 클라이언트 정보(입력 데이터, IP, 브라우저 버전 등)를 취득할 떄 사용
- response: 응답 객체 / 서버가 가지고 있는 자원을 클라이언트에게 write할 때 사용
- out: 출력을 클라이언트로 보내는 객체
- session: 서버측 웹컨테이너에 사용자의 상태를 관리하는 객체
- application: 어플리케이션 전반에 걸친 정보를 관리하는 객체
- config: 페이지와 관련된 서블릿 설정 객체
- pageContext: 현재 페이지의 내용을 저장하고 있는 객체
- page: 페이지에 대한 실제 인스턴스(자바클래스)를 저장하고 있는 객체
- Exception: 이전페이지의 에러를 저장하고 있는 객체
> 요청 페이지당 request 한개가 자동 생성된다
> 클라이언트가 서버에 전송을 요청하면 클라이언트에게 수많은 정보가 전달되고, 그 정보를 받는 객체가 request!!
⭐ 액션태그 (Action Tag)
- jsp:include > 페이지가 요청될 때 해당 태그가 위치한 곳에 파일을 포함시킨다
- jsp:forward > 하나의 jsp페이지에서 다른 jsp페이지로 강제이동시킨다
- jsp:element > XML태그를 동적으로 정의한다
- jsp:attribute > 동적으로 정의된 XML태그의 속성을 정의한다
- jsp:body > 동적으로 정의된 XML태그의 본문을 정의한다.