HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 구현
주석 태그
JSP 주석태그 comments tag : JSP 웹 컨테이너가 무시하는 텍스트를 표시
주석 태그는 JSP 페이지의 일부를 주석 처리하여 숨길 때 유용
주석은 프로그램의 실행에는 영향을 미치지 않지만 프로그램의 이해 및 소스코드의 분석을 위해 반드시 기술할 것을 권장
주석 태그는 JSP 웹 페이지에서만 사용되며 웹 브라우저를 통해 해당 페이지의 출력 결과를 확인하거나 웹 브라이저상에서 소스 보기를 해도 주석태그 내의 내용이 표시되지 않음
선언문 태그 declaration
변수나 메소드 등을 선언하는 태그
선언문 태그에 선언된 변수와 메서드는 서블릿 프로그램 으로 번역될 때 _jspService() 메소드 외부에 배치되므로 JSP 페이지 임의의 위치에서 선언할 수 있음.
심지어 스크립틀릿 태그보다 나중에 선언해도 스크립틀릿 태그에서 사용할 수 있음.
<%! 자바코드; %>
클래스 레벨에서 사용되며, 선언된 변수나 메서드는 전역 변수로서 JSP 페이지 내의 모든 코드에서 접근할 수 있습니다. 이 태그는 주로 멤버 변수나 메서드를 정의할 때 사용됩니다.
JSP 페이지가 처음으로 로드될 때 한 번만 초기화되고, 이후의 요청에서는 다시 초기화되지 않습니다. 이는 전역 변수와 메서드를 정의할 때 유용하며, 초기화 비용을 최소화할 수 있습니다.
스크립틀릿 태그 scriptlet
자바 코드로 이루어진 로직 부분을 표현.
스크립틀릿 태그는 가장 일반적으로 사용되며 변수 또는 메소드 호출, 유효식 등 다수를 포함할 수 있음.
모든 텍스트, HTML 태그, 또는 JSP 요소는 스크립틀릿 태그 외부에 있어야 함.
<% 자바코드; %>
스크립틀릿 태그에 작성된 자바 코드는 서블릿 프로그램 으로 변환될 때 _jspService() 메소드 내부에 복사.
각 클라이언트의 요청에 대해 _jspService() 메소드가 호출되므로 이 메소드의 내부 코드가 클라이언트의 요청마다 실행되어야 함.
_jspService() 메소드 내부에 복사되므로 지역변수가 되 어 이 태그에 선언된 변수는 스크립틀릿 태그 내에서만 사용 가능.
메서드 내에서 사용되며, 주로 동적인 부분을 생성하기 위한 Java 코드를 작성할 때 사용됩니다. 스크립틀릿은 주로 HTML 코드 안에서 사용되며, 페이지의 일부를 동적으로 생성하는 데에 활용됩니다.
스크립틀릿 태그는 각각의 요청에 대해 매번 실행됩니다. 즉, 스크립틀릿 내의 코드는 요청마다 새로 생성되며 실행됩니다.
표현문 태그 expression
다음과 같이 <%= 와 %>를 사용하여 웹 브라우저에 출력 할 부분을 표현.
표현문 태그를 이용하여 선언문 태그 또는 스크립틀릿 태그에서 선언된 변수나 메소드의 반환 값을 외부로 출 력할 수 있음.
스크립틀릿에서는 out.print() 메소드를 사용해야 하지 만 표현문 태그는 = 만 사용하면 됨.
값을 표현하는 경우가 많아서 간략하게 사용하게 만듬.
<%= 자바코드; %>
표현문 태그에 숫자, 문자, 불린 등의 기본 데이터 타입 과 자바 객체 타입도 사용 가능.
표현문 태그에 작성된 모든 자바 코드의 값은 문자열로 변환되어 웹 브라우저에 출력.
기본 데이터 타입은 toStrinig()을 통해 출력되고, 자바 객체 타입은 java.lang.Object 클래스의 toString() 메소드를 사용하거나 자체에 선언한 toString()을 사용하여 출력.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>Scripting Tag</h2>
<%!
// 선언문 태그를 사용하여 자바 변수와 메서드 정의
int count = 3;
String makeItLower(String data) {
return data.toLowerCase();
}
%>
<%
// 스크립틀릿 태그로 자바 로직 코드 작성
for (int i = 1; i <= count; i++) {
out.println("Java Server Page " + i + ",<br>");
}
%>
<%-- 표현문 태그로 선언문의 메서드를 호출하여 문자열 형태로 출력 --%>
<%=makeItLower("Hello World")%> <%-- 표현문 태그에서 '=' 은 스크립틀릿 태그에서 out.println 과 같다 보면 됨 --%>
</body>
</html>