JSP의 개요
JSP는 Java Server Page의 약자로
Java를 이용하여 동적 웹 서비스를 구현할 수 있는 서버 사이드 기술.
컴파일 방식이 아닌 스크립트 방식을 사용하므로 JSP 페이지를 개발하는 프로그래머가 직접
컴파일하지 않고 페이지의 호출 시 필요한 경우에 한해 자동으로 컴파일을 수행하여
서비스를 제공한다.
JSP의 동작
SERVLET
: 클래스 -> 인스턴스 -> 서블릿 컨테이너에 코딩되서 사용
JSP (JAVA 파일이 아니다, class 파일로 컴파일할 수 없다.)
: JSP -> JAVA -> 클래스 -> 인스턴스 -> 웹 컨테이너 코딩되서 사용
-> JSP 파일은 기능 수행에 필요한 최소한의 자바 문장으로만 작성되므로 바로 컴파일하여
사용하는 것이 불가능하다. 따라서 JSP 페이지는 실행되어야 하는 시점에 컴파일이 가능한
완전한 자바 코드를 갖춘 자바 클래스로 변환하는 과정을 거친다.
EX)Hello World 문자열을 출력하는 JSP 페이지 제작
저장된 경로를 찾아가보면
확장자 .java , 파일명은 jsp 파일에 쓰여진 HelloWorld와 _jsp를 붙여서 저장된다.
그리고 파일명은 같고 확장자는 .class인 컴파일된 파일도 생성된다.
JSP 파일의 구성 요소
JSP는 HTML 태그를 가공 없이 바로 사용하고 자바 코드가 필요한 경우 특정 기호를 통해 삽입되는
형태로 작성한다.
<주요 구성 요소>
-지시자(directive) : JSP페이지에 대한 설정 정보 지정
-주석 : 컴파일이 되지 않는 텍스트
-HTML : HTML 태그가 가공없이 바로 사용 가능
-스크립팅 요소(★★★★★) : 자바 코드가 삽입되는 여러 가지 형식
지시자
지시자는 웹 클라이언트가 웹 브라우저를 통해 전달하는 요청(request)을 직접적으로 처리하기 위한
문법이 X, 웹 컨테이너가 JSP 페이지를 서블릿 역할을 할 클래스로 변환할 때
해당 페이지를 어떻게 처리할 것인지에 대한 정보를 지정하기 위해 사용된다.
-지시자의 종류
page : JSP 페이지의 속성을 지정 <%@page 속성/값 지정 %>
include : 특정 JSP, HTML 파일을 현재 페이지에 삽입 <%@include 속성/값 지정%>
taglib : JSP 페이지에서 사용할 JSTL, 사용자 정의 태그 사용 명시 <%@taglib 속성/값 지정%>
스크립팅 요소(Scripting Elements)
1. 스크립틀릿(Scriptlet)
JSP 내에 자바 코드를 직접 삽입해야 할 때 사용되는 코드블록.
형식 : <% %>사이에 자바 코드를 그대로 사용.
<%자바 문장1;%>
<%
자바 문장2;
자바 문장3;
%>
반복문, 조건문을 사용할 수도 있다.
형식
<% if(조건식){
자바 코드
&>
<HTML 태그>
<%
}
%>
<% for(반복식){
%>
<HTML 태그>
<%
}
%>
2.표현식(Expression)
간단하게 말하면 out.println(...) 이 안에 들어가는 내용 대신할 수 있음.
스크립틀릿과는 달리 문장 끝에 ';'을 붙이지 않는다.
형식
<%=변수%>
<%=수식%>
<%=리턴값을 가지는 메서드%>
3.선언문(Declaration)
선언문은 JSP 페이지 내에서 사용할 클래스 변수, 인스턴스 변수와 같은 멤버 변수와
멤버 메서드를 선언할 때 사용한다.
스크립틀릿과 달리 선언문에 작성된 코드는 _jspService( )메서드에 삽입되지 않고
서블릿 클래스 바로 아래에 작성된다.
형식
<%!
변수 선언;
메서드 선언(파라미터 목록){
자바 코드
}
%>
★★★선언문의 경우
-스크립틀릿 혹은 표현식에서 사용한 자바 코드는 JSP 파일이 변환된 Java 파일 내에서
_jspService( )메서드에 작성된다. -> 만약 스크립틀릿 내에서 변수를 선언한다면
_jspService( )메서드 안에서 선언된 변수이므로 지역변수가 된다.
하지만 선언문에서 만든 변수는 _jspService( )메서드에서 바깥,
즉 변환 자바 클래스 바로 안쪽에 생성되므로 클래스, 인스턴스 변수(전역 변수)가 된다.
메서드도 마찬가지.
선언문 안에는 스크립틀릿 안에서 선언된 변수는 사용 불가.
-> 스크립틀릿 내부에서 선언된 변수는 지역변수이므로 _jspService( ) 메서드 외부에서는 사용 불가.
'📒 education archive > 📍Servlet, JSP' 카테고리의 다른 글
JSP 공부 기록(6)-쿠키(Cookie), 아이디 저장 기능 로그인 예제 (0) | 2021.08.22 |
---|---|
JSP 공부 기록(5)-세션 관리, URL Rewriting, Hidden Field, 예제 (0) | 2021.08.22 |
JSP 공부 기록(4)-JSP 에러 처리, 예제 (0) | 2021.08.21 |
JSP 공부 기록(3)-내장 객체,Redirect,Forward,Include (0) | 2021.08.16 |
JSP 공부 기록(2)-구구단 테이블,현재 날짜와 시간, 오칙 연산 예제 (0) | 2021.08.14 |