본문 바로가기

Web/JSP

[JSP] JSP 문법

JSP 스크립트 요소

1. 선언문(Declaration) <%! %>

전역변수 선언 및 메소드 선언에 사용되며, _jspService() 내부가 아닌 필드에 선언된다.

1
2
3
4
5
6
7
id : <%=getId() %>
<%!
    String id = "hh_lin"// 멤버변수 선언
    public String getId() {  // 메소드 선언
        return id;
    }
cs


2. 스크립틀릿(Scriptlet) <% %>

일반적으로 가장 많이 쓰이는 스크립트 요소로, 주로 프로그래밍의 로직을 기술할 때 사용한다.

스크립틀릿에서 선언된 변수는 지역변수이다.

1
2
3
4
5
6
7
8
9
<%
    for(int i = 1; i <= 5; i++){
%>
 
<H<%=%>> 아름다운 한글 </H<%=%>>
 
<%
    }
%>
cs

3. 표현식(Expression) <%= %>

JSP 페이지에서 웹 브라우저에 출력할 부분을 표현한다. 

스크립틀릿 내에서 출력할 부분은 내장객체인 out객체의 print() 또는 println() 메소드를 사용해서 출력한다.


4. 주석(Comment) <%-- --%>

JSP페이지에서 사용할 수 있는 주석은 HTML, Java, JSP 주석이다.

JSP주석일 경우에는 주석 자체가 JSP주석이기 때문에 Servlet으로 변환되지 않는다.

Java주석일 경우에는 Servlet으로 변환은 되지만 Java주석이기 때문에 실행이 되지 않는다.

HTML주석일 경우에는 Servlet으로 변환도 되고 Java코드로 실행도 되지만, 응답객체로 넘어와 화면에 뿌려줄 때 표시되지 않는다.

따라서 JSP 주석은 해당 페이지를 웹 브라우저를 통해 출력 결과로서 표시하거나, 웹 브라우저 상에서 소스 보기를 해도 표시되지 않는다. 

또한, JSP 주석 내에 실행코드를 넣어도 그 코드는 실행되지 않는다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- JSP 주석 --%>
<!-- HTML 주석 -->
<% 
    // Java 주석
    int total = 0;
    for(int i = 1; i <= 10; i++){
        total = total + i;
    }
%>
 
1부터 10까지의 합 : <%=total %>
</body>
</html>
cs

위의 코드를 실행한 후 소스코드보기를 실행하게 되면 아래와 같이 HTML 주석만 확인할 수 있다.

1
2
3
4
5
6
<body>
 
<!-- HTML 주석 -->
 
1부터 10까지의 합 : 55
</body>
cs

서블릿 코드를 확인해보면, JSP주석을 제외한 HTML, Java 주석을 확인할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void _jspService(final javax.servlet.http.HttpServletRequest request, 
final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {
    
    // ...
 
      out.write("<body>\r\n");
      out.write("<!-- HTML 주석 -->\r\n");
 
    // Java 주석
    int total = 0;
    for(int i = 1; i <= 10; i++){
        total = total + i;
    }
 
      out.write("\r\n");
      out.write("1부터 10까지의 합 : ");
      out.print(total );
      out.write("\r\n");
      out.write("</body>\r\n");
 
    // ...
}
cs





JSP 페이지 지시어

1. laguage : 사용할 스크립트 언어를 지정하는 속성.   

1
<%@ page language="java" %>
cs

2. import : JSP 내에서 사용할 외부 자바 패키지나  클래스의 import 지정.

1
<%@ page import="java.sql.*, java.util.*" %>
cs

3. session : 세션의 사용유무 (true)

1
<%@ page session="true" %>
cs

4. buffer : jsp 내용을 출력하려면 JspWriter 객체인 out변수를 사용함. 이때 out객체로 사용할 버퍼 크기를 지정하는 속성.

(버퍼는 데이터를 좀 더 효율적이고 안전하게 전송하기 위한 프로그래밍 기법으로 전송할 데이터를 미리 확보한 다음조금씩 전송하는 방법이다.)

1
<%@ page buffer="8KB" %>
cs

5. autoFlush : 버퍼의 내용 자동 비움 지정.

1
<%@ page autoFlush="true" %>
cs

6. isThreadSafe : 단일스레드 모델을 사용함으로써 true 동시성 제어 여부 지정

서블릿의 장점은 각 사용자 접속에 대한 요청을 프로세스가 아닌 스레드로 처리하는데 있다.

스레드를 이용하면 좀 더 효율적으로 시스템을 운영할 수 있으나, 각 스레드가 자원을 공유하기 때문에 

이들 데이터에 대한 안정성을 보장할 수 없게 된다.

isThreadSafe 옵션은 스레드 상태에서 데이터의 안정성을 보장하는 옵션으로, 기본값은 true이다.

1
<% page isThreadSafe="true" %>
cs

7. info : JSP 페이지에 대한 설명 해당 JSP 설명 부분으로 일종의 주석이다.

1
<% page info="JSP Example" %>
cs

8. errorPage : 현재 페이지에서 오류 발생 시 호출될 페이지 지정

errorPage 속성은 현재 JSP 페이지에서 오류가 발생할 경우 호출할 페이지를 지정한다.

1
<%@ page errorPage="error.jsp" %>
cs

9. isErrorPage : 오류만을 처리하는 페이지로 지정 (false)

isErrorPage는 errorPage 속성에 설정된 오류 처리 파일로, 다른 용도로는 사용할 수 없고 오류 처리에만 이용된다.

1
<%@ page isErrorPage="true" %>
cs

10. contentType : MIME 형식 지정 및 캐릭터셋 설정 (text.html; charset=ISO-8891-1)

현재JSP 내용에 대한 유형을 설정하는 옵션이다. 원하는 MIME Type을 기입하면 된다.

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

11. pageEncoding : contentType 과 동일한 기능을 한다 (ISO-8891-1)

1
<%@ page pageEncoding="UTF-8" %>
cs

12. extends : 현재 JSP 페이지를 특정 클래스를  상속한 클래스로 작성함

1
<%@ page extends="system.MasterClass" %>
cs










참고자료

https://www.edwith.org

'Web > JSP' 카테고리의 다른 글

[JSP] JSP 내장객체  (0) 2018.12.03
[JSP] JSP 개요  (0) 2018.12.03