[ITWILL : JSP]JSP 주석과 JSP directive, JSP 스크립트 요소

ITWILL학원 : 13강 JSP기초 BY 정규태강사

jsp는 html과 java를 합쳐서 사용하는 것이기때문에 주석을 두가지를 사용할 수 있다.

1. JSP주석 <%– – %>

%로 시작하는 주석은 jsp주석이다. 이는 엘리먼트요소이다.
html 주석문과 <!– –> 과 차이점은 html주석은 개발자도구에서 보이지만 JSP주석은 개발자도구에서 보이지않는다.

1
2
HTML주석 : <!-- <h1>에이치티엠엘yo!</h1> --!> 
JSP주석 : <%-- <h1>제이에스피yo!</h1> --%>

2. JSP가 어떻게 JAVA와 연결되어있을까?

연결성을 알기 위해서 아래 경로를 찾아가보자.

경로 : D:\JAVA저장경로.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\JSP7\org\apache\jsp\JSP1

해당 폴더에는 내가 생성한 적 없는 아래 파일 두개가 들어가있다.

  • 파일명.java
  • 파일명.class

해당 폴더안에 .java파일을 열어보면 내가 만들었던 .jsp파일이 내부적으로 .java파일을 생성하고 그 뒤 .class파일을 실행시키는 방식으로 연결되어있다.
이런 .java파일을 서블릿이라고 부른다.

즉, 내가 .jsp파일을 만들면 컴파일러가 알아서 서블릿이라는 형태인 .java파일을 만들고 그 뒤 .class파일을 실행시킨다.

3. JSP 디렉티브(directive)

jsp 디렉티브(directive)는 jsp페이지가 실행될때 필요한 정보를 지정하는 것이다.
jsp페이지는 사용자가 페이지를 요청할때 실행된다.
<%@ 내용내용블라블라 %> 형태로 사용한다.
크게 3가지 지시어가 존재한다.

1. JSP 디렉티브(directive)의 page지시어 속성

아래는 page예시이다.

  1. import
1
2
3
<%@ page import="java.util.*" %>

<%-- import란 외부로부터 다른 파일(클래스/객체)가져와서 추가해서 지정할수있다. --%>
  1. contentType

사용자의 요청을 응답할때 응답할 페이지의 MIME타입을 지정하기위한 속성이다.
따라서 css나 aac오디오, azw전자책등등 다양한 종류의 페이지타입을 만들수있다.

contentType 종류

1
<%@ page contentType="text/html; %>

5. JSP 스크립트 요소

JSP 스크립트요소에는 총 3가지가 있다.

  1. 선언문 : 변수, 매서드(함수)를 선언해서 사용한다.
  2. 스크립틀릿 : 자바코드를 작성(변수와 매서드 사용가능)해서 사용한다.
  3. 표현식 : 화면에 출력할 내용을 작성하여 사용한다.

1. 선언문

선언문 형태 : <%! %>
변수, 매서드(함수)를 선언해서 사용하기때문에 배열은 생성할수없다. 배열을 생성하고싶으면 스크립틀릿안에 써야한다.
멤버변수(전역변수)형태로 사용가능.

1
2
3
4
5
6
<%!
//자바코드를 사용해서 변수,메서드 사용(전역변수)
public void Method(){
System.out.println("안녕하세요");
}
%>

2. 스크립틀릿

스크립틀릿 형태 : <% %>
자바코드를 작성(변수와 매서드 사용가능)해서 사용한다.
지역변수형태로만 사용가능.

1
2
3
4
5
6
7
8
<%
//java
System.out.println(name);
System.out.println(a);

// html 영역의 출력
out.print("안녕하세요(html)");
%>

3. 표현식

표현식 형태 : <%= 자바의 값 %>
화면에 출력할 내용을 작성하여 사용한다.
즉 표현식은 값 또는 자바변수의 값을 화면에 출력가능한 코드이다.

1
2
3
4
5
6
7
<%
for (int i=0; i<strArr.length; i++){
%>
<%= i%>는 <%= strArr[i]%> <br>
<%
}
%>

표현식으로 테이블만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
String[] strArr = new String[5];
strArr[0] = "java";
strArr[1] = "jsp";
strArr[2] = "web";
strArr[3] = "DB";
strArr[4] = "spring";
%>

<table border="1">
<tr>
<td>인덱스</td><td>값</td>
</tr>

<%
for(int i=0;i<strArr.length;i++){
%>
<tr>
<td><%=i %></td><td><%=strArr[i] %></td>
</tr>
<%
}
%>

4. 선언문과 스크립틀릿 차이

선언문은 전역변수로 사용가능하지만 스크립틀릿은 지역변수로만 사용가능하다.
자주 사용할 것은 선언문보다 스크립틀릿이다.