KEEP GOING

[JSP] JSP와 스크립트 요소(스크립틀릿, 선언문, 표현식, 주석, 지시자) 본문

web

[JSP] JSP와 스크립트 요소(스크립틀릿, 선언문, 표현식, 주석, 지시자)

jmHan 2022. 6. 13. 13:12
반응형

JSP

HTML 안에 Java 코드를 삽입하여 동적인 웹 페이지를 구축하는 스크립트 언어

 

 - JSP를 통해 정적인 HTML과 동적인 contents(HTTP 요청 파라미터)를 혼합하여 사용 가능 

- 스크립트 언어이므로 자바 기능을 모두 사용 가능

- Tomcat(WAS)이 이미 만들어 둔 객체를 사용한다. ( ex. request, response, session 등)

 

스크립트 요소

(1) 스크립틀릿 <% Java 코드 %>

<% .. %> 태그 내에 있는 Java 코드. JSP에서 Java 코드를 사용할 수 있도록 돕는다.

- 스크립틀릿에 객체나 클래스를 사용할 경우, package명까지 작성한다.

 

(2) 지시자 <%@ %>

컨테이너가 웹 페이지를 Java 코드로 변환시 필요한 지시어를 처리하는 키워드 

ex. page, include, taglib

- 지시자 사용시 <% 옆에 @를 붙인다.

- page 지시자는 Java 코드에서 import한다는 의미와 같다.

 

디렉티브 

JSP에 대한 설정 정보를 지정할 때 사용 

<%@디렉티브 이름 속성1="값1"; 속성2="값" .. %>

<%@page contentType = "text/html; charset=utf-8" %>

 

- page : jsp 페이지에 대한 정보 지정. jsp의 문서 타입, 출력 버퍼 크기, 에러 페이지 등 설정 

- taglib : jsp 페이지에서 사용할 태그 라이브러리 지정

- include : jsp 페이지의 특정 영역에 다른 문서를 포함시킴

 

(3) 표현식 <%= 값 또는 변수 %>

JSP에서 출력을 위해 out.println()을 사용하지 않고 =으로 처리하는 방법

출력문을 간단하게 작성하도록 도와준다.

<% out.println(foo.Counter.getCount()) %>를 <%= foo.Counter.getCount() %>로 표현

컨테이너가 자동적으로 out.println()으로 변환

 

- 출력을 위해 사용하므로 반환값이 없는 void 메서드 호출 불가

- 표현식 사용시 자동으로 마지막에 세미콜론 생성  

 

(4) 선언문 <%! 멤버 변수 또는 메서드 %>

JSP에서 멤버변수와 메서드를 선언하기 위해 사용 

메서드를 맨 아래에 선언하더라도 표현식이나 스크립틀릿에서 사용 가능

(5) 주석 <%-- -->

JSP에서 주석을 처리하는 방법

 

내장 객체

API 내장 객체
JspWriter out
HttpServletRequest request
HttpServletResponse response
HttpSession session
ServletContext application
ServletConfig config
JspException exception
PageContext pageContext
Object page (==this)

 

사용 예제

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<%-- 선언문: 멤버변수와 메서드 정의 --%>
	<%!
		int add(int x, int y){
			int result = x + y;
			return result;
		}
	%>
	
	<%-- 스크립틀릿: 자바코드 사용 가능 --%>
	<%
		int num1 = 10;
		int num2 = 20;
		int sum = add(num1, num2);
	%>
	
	<%--표현식: 선언문과 스크립틀릿에서 처리한 결과값 출력 --%>
	<h1><%=num1 %>과 <%=num2 %>의 합은 <%=sum %></h1>
</body>
</html>

 

반응형
Comments