위 글은 해당 카테고리의 수업 강의 자료를 정리한 것입니다.
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("/")%>
예제: 스크립트릿과 표현식 연동
<%@ 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)
생략...
📌
선언문에서 선언한 변수를 자바에서 클래스 변수 또는 멤버 변수라고 함
스크립트릿에서 선언한 변수는 지역 변수 또는 로컬 변수라고 함
선언문에서 선언한 변수와 스크립트릿에서 선언한 변수는 선언하는 위치가 다르므로 전혀 관계가 없음
'강의 > KOSTA' 카테고리의 다른 글
[JSP/Servlet] How to JSP works and Servlet (Day21) (0) | 2022.04.04 |
---|---|
[JSP/Servlet] Understanding Web programming (Day21) (0) | 2022.04.04 |
[JSP/Servlet] Build a Development Environment & etc (Day20~21) (0) | 2022.04.01 |
[JSP/Servlet] Introduction to Web Development (Day20) (0) | 2022.03.31 |
[Linux] Linux Introduction and Installation (Day17) (0) | 2022.03.29 |