ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP | Script 3대 요소 & Comment 주석
    JAVA/JSP 2020. 2. 17. 22:18

    JSP 3대 Script 요소

    요소 형식 목적
    Scriptlet 스크립트릿 < % % > 프로그래밍 코드(Java code) 기술
    Expression 표현식 < %= %> 화면에 출력할 내용 기술
    Declaration 선언문 < %! % > 전역 변수 선언 및 메소드 선언

    ① ScriptLet

    ScriptLet(스크립트릿): 웹 상에서 자바코드를 사용할 수 있도록 하는 영역

    1. < % Java Code % >: < & & > 내부에 자바 코드 작성, 주석도 작성 가능
    2. JavaScript 구문이 아니기 때문에 태그 및 표현식 작성 불가
    3. JSP 내부 어디든 선언해서 사용 가능
      단, page Directive 위에 다른 스크립트릿을 사용해서는 안 됨
    4. 순차적으로 실행됨
      head 태그 내부에는 스크립트릿으로 변수를 선언하고
      body 태그 내부의 스크립트릿에서 변수 사용 가능
      → 순차적으로 실행되기 때문에 사용할 변수를 나중에 선언할 수는 없음
    5. 변수(지역 변수)를 선언하거나 간단한 제어문을 쓸 때 사용
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <%@ 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>
    <%
        // 변수 선언
        int count = 3;
    %>
    </head>
    <body>
        <%
            // 웹 페이지에 출력을 수행하는 반복문
            for (int i = 0; i < count; i++) {
                out.println("<h1>JSP 테스트" + i + "</h1><br/>");
            }
            out.print("count: " + count);
        %>
        <!--
        JSP 테스트0
        JSP 테스트1
        JSP 테스트2
        count: 3
        -->
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    ② Expression 표현식

    출력문 대용으로 간단하게 사용

    • < %=JavaCode% >
      스크립트릿 내부에 = 기호가 추가됨
    • 변수값 출력, 메서드 호출시 사용
      < %=변수명% >, < %=객체명.일반메소드명() % >, < %=정적메소드명() % >
    • 표현식 내부에는 ;(세미콜론)을 작성하지 않음
    • 스크립트릿 내부에는 표현식 작성 불가
    • 출력문 대용이기 때문에 웹 페이지에 출력됨
    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>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <%
        // 변수 선언
        int count = 3;
    %>
    </head>
    <body>
        <!-- 표현식 작성 -->
        <%=count%>
        <%=count%>
        <%=count%>
        <!-- 3 3 3 -->
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    ③ Declaration 선언문

    • < %!JavaCode% >, 스크립트릿에 !(느낌표)가 추가됨
    • 전역 변수, 메소드 선언시 사용
    • 선언된 위치에 상관없이 변수를 불러다 사용 가능
    • 일반적으로 메소드는 다른 파일에 작성해서 분리함(JavaBean)
      같이 작성할 경우 기능과 디자인이 섞여서 보기도 안 좋고 충돌 가능성이 있음
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <%@ 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>
        <%=sum(53)%>
        <!-- 8 -->
     
        <%=count%>
        <!-- 3 -->
     
        <%!
        // 변수 선언
        int count = 3;
     
        // 메소드 선언
        public int sum(int a, int b) {
            return a + b;
        }%>
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    ※ JavaBean
    DTO(Data Transfer Object): Setter, Getter
    DAO(Data Access Object): 웹 상에서 DB에 관련된 메소드만 선언된 클래스


    comment 주석

    • <%-- --%>: JSP 주석, 페이지 '소스 보기'에서 주석 확인 불가, 개발자만 확인 가능
    • <!-- -->: HTML 주석, '소스 보기'에서 주석 확인 가능, 클라이언트도 확인 가능
    • //, /* */: Java 주석, 스크립트릿, 표현식, 선언문 내부에 사용
    • HTML 주석 내부에 표현식 사용 가능
      스크립트릿은 사용 불가!!
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <!-- HTML 주석 -->
    <%-- JSP 주석 --%>
    <head>
    <meta charset="UTF-8">
    <title>JSP Comment</title>
    </head>
    <!-- 5+3 <%=5+3%> -->
     
    <%/* 주석 내부에 표현식을 작성하는 경우
    소스 보기에서 8이 출력된 것을 볼 수 있음*/%>
     
    <body bgcolor="yellow">
        <h1> JSP 주석 확인 예제</h1>
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    ※ HTTP 상태 500 에러
    문법이 잘 못된 경우 발생하는 에러
    html 주석 내부에 스크립트릿을 작성했을 때도 발생


    종합 예제_표 만들기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <%@ 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>
    <%!
    // 문자열 배열 선언
    String[] keyword = { "Scriptlet""Expression""Declaration" };
    %>
    </head>
    <body>
    <!-- table 태그는 하나만 있으면 되므로 for문 밖에 작성 -->
        <table border="1px solid black" width="200">
            <%
                // tr, td를 for문을 통해서 생성 
                for (int i = 0; i < keyword.length; i++) {
                    out.println("<tr><td>" + i + "</td><td class='td2'>" + keyword[i] + "</td></tr>");
                }
            %>
        </table>
        <!--
        0 Scriptlet
        1 Expression
        2 Declaration        
         -->
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    웹 애플리케이션 배포_WAR 내보내기

    WAR: Web ARchive로 웹 애플리케이션을 구성하는 파일들을 포함하는 파일

    웹 애플리케이션을 완성한 후 서비스하기 위해서는 반드시 WAR파일을 만들어야 함


    WAR 파일 생성

    1. 서버 실행 종료
    2. 배포를 원하는 프로젝트 우클릭
    3. Export → WAR file
    4. Destination: 저장 경로 지정
    5. Export source files: 자바 파일을 같이 내보낼 것인지 선택
    6. Overwrite existing file: 이미 존재하는 WAR 파일이 있는 경우 덮어쓸 것인지 선택
    7. Finish

    WAR 파일 불러오기

    1. Project Explorer 우클릭
    2. Import → WAR Import
    3. WAR file: WAR 파일 경로 지정
    4. Web project: 프로젝트명 지정, 프로젝트명이 중복되는 경우 충돌
    5. Taget runtime: 런타임 서버 선택
    6. Finish

    JSP 기초 문법이라고 할 수 있는 Script 3대 요소와 주석에 대해 알아보았습니다.

    Script 요소를 사용함으로써 JSP파일에서 HTML과 Java 코드를 함께 사용할 수 있습니다.

    스크립트릿과 선언문의 가장 큰 차이는 선언문의 경우 전역 변수와 메소드를 작성하기 때문에
    선언문의 변수는 어디서든 호출할 수 있다는 점입니다.

     

    또한 표 만들기 예제에서 볼 수 있듯이

    스크립트릿과 HTML 태그를 혼용하는 경우에는

    스크립트릿이 순차적으로 실행되면서 HTML태그와 섞이지 않도록 주의해야 하겠습니다.

     

    마지막으로 동적 웹 페이지의 배포를 위해서는 반드시 WAR 파일을 생성해야 한다는 점을 기억해야겠습니다.

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

    JSP | Servlet  (0) 2020.02.18
    JSP | Page Diretives_<%@ page %>  (0) 2020.02.18
    JSP | JSP 환경 설정  (0) 2020.02.14
    JSP | JSP 개요 및 특징  (0) 2020.02.14
    JSP | Servlet 서블릿 개요  (0) 2020.02.14

    댓글

Designed by Tistory.