JSP - 개요,기본문법,LifeCycle
17 Feb 2021 | JSPJSP - 개요,기본문법,LifeCycle
-
JSP
- JSP(JavaServer Page)는 서블릿과 동일하게 동적인 웹 페이지를 개발하는 기술이다
- HTML 태그 내에 자바 코드를 삽입하는 형식
- 클라이언트의 요청이 접수되면 JSP는 WAS에 의해 서블릿 소스코드로 변환되어 서블릿 클래스로 컴파일 된 후 실행된다
- JSP는 Beans라는 자바 컴포넌트를 사용할 수 있다
- JSTL(JSP Standard Tag Library)와 같은 태그 라이브러리를 사용할 수 있다
- 동작 원리
- HTML 태그와 JSP태그를 사용하여 .jsp 파일을 작성
- 클라이언트로부터 JSP 요청이 들어오면 JSP 컨테이너는 JSP 파일을 자바 소스로 변환(.java)
- .java 파일을 컴파일하여 .class 파일을 만든다
- 컴파일된 .class파일은 서블릿 컨테이너에 의해 서블릿으로서 동작
- 변환과 컴파일 작업은 최초의 요청이나 JSP가 변경되었을 때만 수행된다
-
JSP 기본 문법
- 선언문(declaration)
<%! 변수, 메소드 선언 %>
- JSP 페이지에 삽입된 코드를 통해서 멤버변수나 멤버메소드를 선언할 수 있다
- JSP LifeCycle Method 중에서 jspInit(), jspDestroy() 등을 재정의 할 때 사용할 수 있다
- 스크립트릿(scriptlet)
/* <% 자바 코드 작성; %> */
- 스크립트릿에서 선언된 변수는 지역 변수로 설정되며, 메소드 호출은 가능하나 선언은 불가능
- 스크립트릿의 자바코드는 _jspService() 메소드 내로 옮겨진다
- 스크립트릿의 자바코드는 이어진다
<% for(int i=0; i<10; i++){ %> <h1> <!-- for문은 끊어지지 않았다 --> </h1> <% } %>
- 표현식(expression)
- JSP 페이지 내에서 직접 클라이언트로 출력될 내용을 표시할 때 사용
- _jspService() 메소드 내에 삽입, 표현식에서는 세미콜론을 사용하지 않는다
<%= 표현식 %>
- 주석
<!-- html 주석, 소스보기 창에 나타남 --> <%-- JSP 주석, 소스보기 창에 안나타남 --%> // 자바 주석 /* 자바 주석 */
-
LifeCycle
- jspInit() : 서블릿의 init()에 해당, 재정의 가능, 초기화를 담당, 최초 호출시에만 작동
- jspDestroy() : 서블릿의 destroy()에 해당, 재정의 가능, 자원 해제 담당, 서버 중지 혹은 jsp 파일 unload시 작동
- _jspService() : 서블릿의 service()에 해당, 재정의 불가능, 요청이 들어올 때마다 새로은 스레드에서 실행된다
참고 자료
KG 아이티뱅크 강의 자료
처음해보는 JSP&Servlet 웹 프로그래밍