1) Script 태그 : 자바 코드를 넣어 프로그램이 수행하는 기능을 구현
2) Directive 태그 : JSP페이지에 대한 정보를 컨테이너에 제공
3) Action 태그 : XML형태의 태그로 JSP페이지 간 제어
스크립트 태그는 JSP페이지를 서블릿 클래스로 변환할때,
컨테이너(tomcat)는 JAVA코드가 삽입되어있는 스크립트 태그를 처리하고
나머지는 HTML코드나 일반 텍스트로 간주한다.
Q. 스크립트 태그는 어떤 구조로 이루어져 있을까?
A. 선언문, 스크립트릿, 표현식 태그들로 이루어져있다.
[종류]
ⓛ 선언문(declaration) : <%! ... %> : 자바 변수나 메소드 정의
② 스크립트릿(scriptlet) : <% ... %> : 자바 로직 코드 작성
③ 표현식(expression) : <%= ...>
: 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력
ⓛ 선언문 태그 <%! ... %>
메소드(함수)나 전역 변수를 선언하기 위한 구문이다.
JSP가 서블릿으로 변환된 Java코드에서 모든 내용이 _jspService()메소드에 들어간다.
따라서, JSP에서 선언한 변수는 지역 변수가 된다.
JSP페이지에서 멤버 변수와 메소드 선언이 가능하다.
구조적으로 JSP에서 JAVA코드를 사용하는 것이 권장되지 않기 때문에, 선언문의 사용도 역시 권장되지 않는다.
<%!
int count = 3; // 변수 선언
String makeItLower(String data){ // 메소드 선언
return data.toLowerCase();
}
%>
② 스크립트릿 태그 <% ... %>
JSP문서 내에서 Java 코드를 기술하는 부분이다.
화면과 프로그램이 섞여있으면 유지보수가 어렵기 때문에, 이 태그 또한 사용을 권장하지는 않는다.
현재 MVC패턴에 따라 웹 프로그램을 개발할 경우에 JSP는 View역할로 있다.
<%
String msg = "접속을 환영합니다^__^";
out.println(msg);
%>
Q. 선언문 태그와 스트립트릿 태그의 차이는 ?
1) 선언문 : 변수 & 메소드 선언
: 서블릿 프로그램으로 변환될 때 jspService() 메소드 외부
에 배치 된다.
2) 스트립트릿 : 변수만 선언
: 서블릿 프로그램으로 변환될 때 jspService() 메소드 내부
에 배치 된다.
③ 표현식 태그 <%= ...>
: 데이터 출력, 메소드 호출시 이용한다.
숫자, 문자, boolean 등 기본 데이터 타입과 Java 객체 타입 또한 사용이 가능하다.
또한, 사칙 연산과 문자열 결한 표현도 가능하다.
하지만, 표현식보다는 표현 언어를 사용하는 것이 좋다.
<%= msg %>
jsp1Scripting.jsp 코드 수정
[jsp script code 사용 부분]
<%
String msg = "접속을 환영합니다^__^";
out.println(msg);
%>
---
<%=msg%>
실행 결과