JSP 스크립트 요소는 JSP 페이지 내에 자바의 코드를 삽입하기 위해 사용된다.
선언문, 스크립틀릿, 표현식 3 가지로 구분된다.
📌선언문
<%! 멤버 변수 및 메소드 선언 %>
선언문은 JSP 페이지에서 Java 코드에서 말하는 멤버 변수와 메서드를 선언하기 위해 사용된다.
선언문을 사용해 선언된 변수는 JSP 파일이 웹 컨테이너에 의해 컴파일될 때 멤버 변수로 인식되기 때문에 JSP 페이지의 어느 위치에서도 해당 변수를 참조하는 것이 가능하다. 또한 중복 사용이 가능하다.
스크립틀릿 요소에서 변수를 선언하면 멤버 변수가 아니라 지역 변수로 인식되기 때문에 변수를 선언하기 이전의 위치에서는 참조가 불가능한 점이 선언문과 스크립틀릿의 가장 큰 차이점이라 할 수 있다.
선언문은 <%! ... %> 태그를 사용한다.
<h1><%=getStr() %></h1>
<%!
private String getStr(){
str+="테스트입니다.";
return str;
}
private String str = "선언문";
%>
위 코드를 보면 str변수가 선언부 안에서 선언되었기 때문에 jsp 페이지 전체에서 인식된다. 따라서 앞에 getStr()메소드를 호출하기 전에 정의 하지 않아도 getStr() 메서드를 호출할 수 있음을 확인할 수 있다.
📌JSP 전용 태그 - 스크립틀릿(Scriptlet)
<% 자바 코드 %>
JSP는 서블릿 코딩의 어려움을 극복하기 위해서 개발된 방식이다. 서블릿으로 HTML 응답을 만들어 내기 위해서는 각각의 HTML태그를 PrintWriter 등의 클래스를 사용해 출력 객체를 생성한 후 일일이 출력해주어야 한다. 따라서 HTML 태그로 이루어진 코드의 길이가 길어질수록 코드의 유지/보수가 어려워지며 그만큼 웹 어플리케이션의 개발 어려움이 증가하게 된다.
JSP에서는 이러한 어려움을 스크립틀릿을 사용하여 극복한다. HTML코드로 된 부분은 일반 HTML 파일처럼 그대로 사용하고 자바 코드로 이루어진 비즈니스 로직 부분은 <% ... %>로 표현되는 스크립틀릿 태그를 사용하여 구분함으로써 out 객체를 사용하지 않고도 쉽게 HTML 응답을 만들어 낼 수 있다. 스크립틀릿의 사용법은 다음과 같다.
<% 문장1; %>
<%
문장2; 문장3; 문장4; ...
%>
📌표현식
<%= 결과를 반환하는 자바 표현식 %>
표현식은 선언문 또는 스크립틀릿 태그에서 선언된 변수 값이나 메서드의 리턴값을 스크립틀릿 태그 외부에서 출력하기 위해 사용되는 방법으로 다음 예시와 같이 사용할 수 있다.
<%=변수 %>
<%=리턴값이 있는 메서드 %>
<%=수식 (변수 또는 리턴값이 있는 메서드를 포함할 수 있음) %>
표현식 태그 (<%= ... %>) 내 구문 전체의 결과 값은 JSP 파일이 파싱될 때 출력 객체의 print() 메서드를 통해 자동으로 문자열(String) 형식으로 변환되어 출력된다. 또한 하나의 표현식 태그 내의 구문 전체가 하나의 print() 메서드의 괄호 안에 통째로 들어가게 되므로 표현식 태그 내부에서는 세미콜론(;)을 사용해서는 안된다.
<h1><%=getStr() %></h1>
<%!
private String getStr(){
str+="테스트입니다.";
return str;
}
private String str = "선언문";
%>
'JSP & Servlet > 개념' 카테고리의 다른 글
[JSP] JSP 영역 객체 (application, session, request, pageContext) (0) | 2022.03.29 |
---|---|
[JSP & Servlet] JSP 내장 객체 (0) | 2022.03.28 |
[JSP] JSP 지시어 (0) | 2022.03.28 |
[JSP] JSP 주석 (0) | 2022.03.28 |
forward와 redirect 방식 (0) | 2022.03.28 |