Server
JSP에 대하여(Java Server Pages)
지화자_
2024. 3. 11. 18:43
*본 포스팅은 JSP에 학습을 위한 용도로 작성되었습니다.
목차
- JSP 동작 및 구성요소
- JSP 기본 태그
- 페이지 이동
#JSP
- Servlet 표준을 기반으로 작성된 웹 어플리케이션 개발 언어
- HTML 내에 Java를 작성하여 동적으로 웹페이지를 생성하여 브라우저에게 돌려주는 페이지
- 실행 시 Servlet으로 변환된 후 실행
#JSP 구성요소
- 지시자 (Directive)
- JSP페이지에 대한 설정 정보를 지정하기 위해서 사용
- 스크립트 요소 (스크립트릿, 표현식, 선언부)
- JSP에서 문서의 내용을 동적으로 생성하기 위해서 사용
- JSP 기본객체 (response,request,out,page,session,Application)
- 요청 및 응답 관련 정보를 얻거나, 응답 결과를 만들기 위해서 사용
- 표현언어 (Expression Language)
- JSP를 좀 더 간결하게 작성하기 위해 사용
- Action Tag 와 JSTL
- 자주 사용하는 기능을 모아 정의하여 Tag형태로 작성한다.
- JSP에서 자바코드를 쉽게 작성할 수 있도록 사용
#JSP 기본 태그
JSP 태그 종류
- 스크립트릿 : 자바코드 작성 <% %> 형식
- 선언 : 변수와 메소드를 선언 <%!%>
- 표현식: 계산식이나 함수를 호출한 결과를 문자열 형태로 출력 <%=%>
- 주석: JSP 페이지 설명 작성 <%-- --%>
- 지시자 JSP 페이지 속성 지정 <%@%>
#스크립트릿
- 스크립팅 언어로 작성된 코드 조각을 포함하는데 사용된다.
- service 메서드 안에 정의된다 ( 메서드 선언 불가)
#선언부
- 멤버변수 선언이나 메서드를 선언하는 영역
#표현식
- 변수의 값이나 계산식 혹은 함수를 호출한 결과를 문자열 형태로 웹문서에 출력
#주석문 (Comment)
- 작성한 코드에 대한 설명을 기술할 경우 사용.
- HTML 주석문과 동일한 기능을 하지만 HTML 주석문은 클라이언트에게 보여지고, JSP 주석문은 보여지지 않는다.
#지시자(Directive)
- 웹컨테이너(Tomcat)가 JSP 번역하고 실행하는 방법을 서술
- page: 해당 JSP 페이지 전반적으로 환경 설정 내용 지정
- include: 현재 페이지에 다른 파일의 내용 삽입할 때 사용
- taglib: 태그 라이브러리에서 태그를 사용할 수 있는 기능 제공
#page
- JSP 페이지 실행 매개변수를 제어
- 출력처리, 오류처리 등의 내용을 포함 ( JSP 생성하기 )
#include
- JSP 내에 다른 HTML 문서나 JSP 페이지의 내용을 삽입할 때 사용한다.
- 반복적으로 사용되는 부분(header,footer 등) 별도로 작성하여 페이지 내에 삽입하면 반복되는 코드의 재작성을 줄일 수 있다.
#taglib
- JSTL 또는 사용자가 작성한 커스텀 태그를 사용할 때 작성한다.
- 불필요한 자바 코드를 줄일 수 있다.
#페이지 이동
요청을 받아 화면을 변경하는 방법은 두 가지가 있다.
- 포워드 방식
요청이 들어오면 요청을 받은 JSP 또는 Servlet이 직접 응답을 작성하지 않고, 요청을 서버 내부에서 전달하여 해당 요청을 처리하게 하는 방식
- request, response 객체가 전달되어 사용되기 때문에 객체가 사라지지 않는다. 브라우저에는 최초 요청한 주소가 표시된다.
- RequestDispatcher는 현재 처리중인 서블릿이 속해 있는 웹 어플리케이션 범위 내에서만 요청을 제어할 수 있습니다.
2. 리다이렉트 방식
요청이 들어오면 내부 로직 실행 후, 브라우저의 URL을 변경하도록 하여 새로운 요청을 생성함으로써 페이지를 이동한다.
- 브라우저가 새로운 요청을 만들어 내기 때문에 최초 요청 주소와 다른 요청 주소가 화면에 보여진다.
- 두 번의 HTTP 트랜잭션이 발생하며, 서버측에서는 최초에 받은 요청중에 처리한 내용을 리다이렉트 된 요청안에서 공유할 수 없는 문제 발생.