Devlog
article thumbnail

위 글은 해당 카테고리의 수업 강의 자료를 정리한 것입니다.

 

 

 

1. 스크립트 요소의 이해

1.1 스크립트 요소란?

  • JSP 프로그래밍에서 사용되는 문법의 표현 형태
  • 종류
    • 선언문
    • 스크립트릿
    • 표현식
    • 주석

예제: 스크립트 요소들을 접목시킴

 <%@ page contentType="text/html;charset=EUC-KR"%>
<html>
<head><title>JSP스크립트 Example</title></head>
<body>
  <h1>Script Example1</h1>
 <%!
 	     String declaration = "Declaration";
 %>
 <%!
 	public String decMethod(){
 	
 	 return declaration;
 	}
 %>
 <%
 	String scriptlet = "Scriptlet";
    String comment = "Comment";

 	out.println("내장객체를 이용한 출력 : " + declaration + "<p/>");
 %>

 선언문의 출력1 : <%=declaration%><p/>
 선언문의 출력2 : <%=decMethod()%><p/>
 스크립트릿의 출력 : <%=scriptlet%><p/>
 <!--JSP주석부분-->
 <!-- JSP 주석1 :  <%=comment%> --><p/>
 <%-- JSP 주석2 : <%=comment%> --%>
 <%  /* 주석 
    (여러줄 주석)
     */  
 %> 
 <%// 주석(한줄 주석)%>
 </body>
 </html>

 

 

2. 선언문

2.1 선언문이란? (정의만 가능)

  • JSP에서 사용될 변수나 메소드를 선언할 수 있는 영역들의 요소
  • JSP 페이지 내에서 변수 및 메소드를 선언 후 변수나 메소드를 이용하여 필요한 동적으로 HTML 코드를 생성하는데 사용
  • 멤버변수: 선언문에 선언된 변수
  • 선언문에서 선언된 변수로 호칭하는 것은 자바에서 변수의 종류가 여러가지 있다는 의미
  • 선언문 문법
<%!
    멤버변수 및 메소드를 선언하는 영역
%>

 

 

2.2 멤버변수의 선언

  • 선언문에서 선언된 변수는 JSP 페이지가 서블릿 코드로 변환이 되면 서블릿 클래스의 멤버 변수로 변환됨

예제: 선언문에서 변수를 선언하기

 <%@ page contentType="text/html;charset=EUC-KR"%>
 <h1>Declaration Example1</h1>
<%
	String name = team + " Fighting!!!";
%>
<%!
	String team = "Korea";
%>
출력되는 결과는 ? <%=name%>

 

 

2.3 메소드 선언

<%
    String name="Korea";
    public String getName(){
        return name;
    }
%>
  • 선언문에서 선언된 메소드는 JSP 페이지 내에서는 일반적인 형태의 메소드로 선언됨
  • getName() 메소드는 멤버 변수 name 값을 리턴시켜주는 메소드로 선언
  • name 변수가 선언문에서 선언 되었기 때문에 멤버변수의 역할이 되면서 접근 가능해짐

예제: 선언문에서 메소드 및 변수 선언

 <%@ page contentType="text/html;charset=EUC-KR"%>
<h1>Declaration Example2</h1>
<%!
      int one;
      int two = 1;
      public int plusMethod(){
       return one + two;
      }
      String msg;
      int three;
%>
one 와 two의 합은 ? <%=plusMethod()%><p>
String msg의 값은 ? <%=msg%><p>
int three의 값은 ? <%=three%>

 

 

3. 스크립트릿

  • JSP 페이지가 서블릿으로 변환되고 요청될 때 _jspService(톰캣 기준으로 설명, 톰캣 안의 컨테이너) 메소드 안에 선언이 되는 요소
  • 스크립트릿은 선언문과 달리 선언된 변수는 지역변수로 선언이 되며 메소드 선언은 할 수 없음
  • 만약 선언을 하게 되면 메소드 안에 메소드를 선언한 것이기 때문에 만들 수 없음
  • 스크립트릿 문법
<%
    이곳에 필요한 자바 코드 삽입 (지역변수 선언, for, while 등...)
%>

 

예제: 스크립트릿의 간단한 문법

 <%@ page contentType="text/html;charset=EUC-KR"%>
 <h1>Scriptlet Example1</h1>
<%!
       int one;
       String msgOne;
%>
<%
      int two = 31;
      String msgTwo = "Scriptlet Example";
%>
<%= two + " : " + msgTwo%><br/>
<%=application.getRealPath("/")%>

실행하고 있는 실제 url 출력

 

예제: 스크립트릿과 표현식 연동

<%@ page contentType="text/html;charset=EUC-KR"%>
<h1>Scriptlet Example2</h1>
<%
   float f = 2.3f;
   int i = Math.round(f);
   java.util.Date date = new java.util.Date();
%>
실수 f의 반올림값은? <%=i%><p/>
현재의 날짜와 시간은? <%=date.toString()%>

 

 

 

4. 표현식

  • 동적인 JSP 페이지를 브라우저로 표현을 하기 위한 요소
  • 변수를 출력하거나 메소드의 결과값을 브라우저에 출력 할 수 있음
  • 스크립트릿 코드 내에서 out이라는 내장객체를 통해 브라우저에 출력 가능
  • 스크립트릿과 달리 변수나 메소드를 출력하고자 할 때 세미클론은 표기하지 않음 (서블릿 코드로 변환될 때 자동적으로 세미클론은 붙여짐)
  • 표현식 문법
<%=변수 혹은 메소드%>

 

예제: 표현식 문법 응용

<%@ page contentType="text/html;charset=UTF-8"%>
<h1>Expression Example2</h1>
<%
		java.util.Date date = new java.util.Date();
		int hour = date.getHours();
		int one = 10;
		int two = 12; 	
%>
<%!
	public int operation(int i, int j){
	 return i > j ? i : j;
	}
%>
지금은 오전일까요 오후일까요? <%=(hour < 12)? "오전":"오후"%><p>
one 와 two 둘 중에 큰 숫자는? <%=operation(one,two)%>

 

 

5. 주석

주의: HTML 주석과 JSP 주석은 다름

 

 

 

6. 기본 제어문 (if-else, for, while)

생략...

 

 

 

 

📌

선언문에서 선언한 변수를 자바에서 클래스 변수 또는 멤버 변수라고 함

스크립트릿에서 선언한 변수는 지역 변수 또는 로컬 변수라고 함

선언문에서 선언한 변수와 스크립트릿에서 선언한 변수는 선언하는 위치가 다르므로 전혀 관계가 없음

profile

Devlog

@덩이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그