Jsp-스크립트, 지시자, 액션태그

2 분 소요

변수선언

    <%
      String name = team + "fighting"; -> 지역변수
    %>
    <%!
      String team = "Korea";  -> 전역변수
    %>
  • 위와 같이 변수 선언할 때엔 두 가지 방식이 있다.

JSP의 스크립트 요소

  1. 스크립트릿 <% … %>
    • 선언문과 달리 여기서 선언된 변수는 지역 변수로 선언이 되고 메소드 선언은 할 수가 없다.
    • 여기서 선언된 변수는 지역변수이므로 반드시 선언과 초기화를 꼭 해야한다.
  2. 선언문 <%! .. %>
    • 선언문에서 선언되는 모든 변수들은 jsp페이지 전체에서 접근할 수 있다.
    • 메소드가 필요하다면 무조건 여기서 선언해야한다.
    • 보통 jsp페이지의 선언문에서 변수(멤버변수)나 메소드를 선언하는 일이 거의 없다. 다른 jsp페이지에서는 그 메소드를 쓸 수 없기 때문이다.
    • 보통 java로 클래스를 만들어 메소드르 선언하여 모든 jsp페이지가 사용할 수 있게끔 해주는게 일반적인 개발방법이다.
    • 선언문은 거~~의 사용되지않음. 대부분의 jsp페이지의 문법은 스크립트릿으로 작동된다.
  3. 표현식 <%= … %>
    • 동적인 jsp 페이지를 부라우저로 출력하기 위한 요소이다.
    • 표현식에선 세미콜론;이 없어도 된다.
    • 또는 스크립트릿에서 내장객체 out을 통해서 출력하는 것도 가능하다.
  4. 주석 <%– … — >, <!– … — >

JSP의 지시자

  1. page 지시자 <%@page … %>
    • 말그대로 해당 jsp페이지에 지원되는 속성들을 정의하는 곳.
    <%@page info="Copyright 2019 by GreatLaboratory.co.kr" language="java"
            contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"
            import="java.util.*" session="true" autoFlush="true"
            isThreadSafe="true" buffer="16kb" trimDirectiveWhitespaces="true"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
            <h1>Directive Example1</h1>
            <div>페이지 정보는 ?</div>
            <%=this.getServletInfo()%><br>
            <%
                    Date d = new Date();
            %>
            <div>현재 날짜와 시간은?</div>
            <%=d.toLocaleString()%>
    </body>
    </html>
  • contentType속성
    • jsp페이지를 어떤 형태로 출력할 것이니지 MIME형식으로 브라우저에게 알려주는 역할
      • text/html이 기본값이다.
      • 또한 jsp페이지에서 사용하는 문자형식을 지정하는 한국말도 가능하게 하려면 “euc-kr”을 넣으면 된다.
  • session 속성
    • 웹 상에서 클라이언트와 서버가 계속 연결된 상태를 session이라고 한다.
    • 이 속성의 기본값은 true이며 jsp페이지가 HttpSession을 사용할지 여부를 지정하는 속성이다.
    • true일 경우 현재의 페이지가 세션을 유지한다.
  • buffer 속성
    • buffer란 동작속도가 크게 다른 두 장치 간의 인터페이스가 서로의 속도차를 조정하기 위해 이용되는 일시적인 기억영역을 말한다.
    • 버퍼는 자신의 장치가 상대방에 의해 정체되지않도록 해준다.
    • 기본값은 “8KB”이다. 보통 JSP페이지는 8KB가 알맞은 크기이다. 많은 양의 데이터를 출력해야한다면 16KB를 써도 된다. “none”을 쓰면 버퍼없이 즉시 출력내용을 브라우저로 전달하겠다는 의미이다.
  • isThreadSafe 속성
    • 하나의 jsp페이지가 동시에 여러 브라우저의 요청을 처리할 수 있는지 여부를 설정한다.
  • trimDirectiveWhitespaces 속성
    • 스크립트나 지시자 때문에 생기는 html문서의 빈 공백을 없애주는 기능
  • errorPage, isErrorPage 속성
    • 자신의 페이지에서 에러가 났을 경우 errorPage 속성값의 페이지로 가서 에러를 처리하게끔해주는게 errorPage속성의 역할
    • errorPage속성값의 페이지에는 isErrorPage속성을 true로 설정해놔야 이 페이지가 에러를 처리할 수 있으며 여기서 exception이라는 내장객체를 쓸 수 있음.

2, include지시자 (파일 삽입)

  • include 지시자를 사용한 jsp페이지를 컴파일하면 그 과정에서 include되는 jsp페이지의 소스내용을 그대로 포함해서 컴파일하게 된다. 즉, 2개의 파일이 하나의 파일로 구성된다.
        <body>
           <%@ include file="directiveTop.jsp"%>
           include 지시자의 Body부분입니다. <hr>
           <%@ include file="directiveBottom.jsp"%>
        </body>
    

JSP의 액션태그

  • 액션태그 - include, forward, plug-in, useBean, setProperty, getProperty
  • 액션태그란 어떤 동작이 일어나는 시점에서 페이지와 페이지 사이에 제어를 이동 시킬 수 있는 기능이다. 자바빈즈의 기능을 사용할 수 있게 도와준다.
  1. inlcude 액션태그 (파일 삽입)
    • include지시자와의 차이점 → 지시자는 단순히 소스의 내용이 텍스트로 박하지만 액션태그는 소스의 내용이 아니라 포함시킬 페이지의 처리결과를 포함시킨다는 점에서 다르다. 지시자는 ‘정적’이고 액션태그는 ‘동적’이다.
    <body>
            <%
                    request.setCharacterEncoding("EUC-KR");
      ㅋString name = "Korea Football";  // 이건 안쓰임.
            %>
            <h1>Include Tag Example1</h1>
            <jsp:include page="includeTagTop.jsp"></jsp:include>
            <hr>
            include ActionTag의 Body입니다.
            <hr>
            <jsp:include page="includeTagBottom.jsp">
                    <jsp:param value="myung_gwan_" name="siteName" />
            </jsp:include>
    </body>

2, forward 액션태그 (페이지 이동)

  • 이것의 가장 특이한 점은 이 태그를 만나서 속성값인 페이지로 이동하게되면 이동 전 원래 페이지의 모든 내용을 버려버린다는 것이다. (so cool)
  • 따라서 사용자가 입력한 값의 조건에 의해 여러 페이지로 이동해야할 경우에 유용하다.
    <body>
            <% 
                    request.setCharacterEncoding("euc-kr");
                    String name = "김명관";
                    String bloodtype = request.getParameter("bloodtype");
                    // 이 부분은 html파일에서 name="bloodtye"으로 갖고온 값을 반환 후 저장한 곳
            %>
            <jsp:forward page='<%=bloodtype + ".jsp"%>'>   // 여기가 조건
            <jsp:param value="<%=name %>" name="name"/>
            </jsp:forward>
    </body>

카테고리:

업데이트:

댓글남기기