본문 바로가기
도서/프로그래밍

[02] 쉽게 배우는 JSP 웹 프로그래밍

by 신발사야지 2024. 1. 14.

2일차

PART02 JSP 기본 문법

CHAPTER 02 스크립트 태그

스크립트 태그의 종류

스크립트 태그 형식 설명

선언문(declaration) <%! … %> 자바 변수나 메소드를 정의하는 데 사용한다.
스크립틀릿(scriptlet) <% … %> 자바 로직 코드를 작성하는데 사용한다.
표현문(expression) <%= … %> 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는데 사용한다.

표현문은 _jspService() 메소드 내부에 있는 out.print() 메소드의 매개변수가 되기 때문에 세미콜론을 사용해서는 안 됩니다.

선언문 태그

선언문에 선언 된 변수는 전역 변수가 된다. 메소드는 전역 메소드가 된다

세미콜론을 넣어줘야 함

<html>
<head>
<title>Scripting Tag</title>
</head>
<body>
	<%!
	int sum(int a, int b) {
		return a + b;
	}
	
	String makeItLower(String data){
		return data.toLowerCase();
	}
	
	%>
	<%
		out.println("2 + 3=" + sum(2, 3));
	%>
	<br>
	<%
		out.println(makeItLower("Hello World"));
	%>
</body>
</html>

스크립틀릿 태그

자바 코드로 이루어진 로직 부분을 표현

out 객체를 사용하지 않고도 쉽게 HTML 응답을 만들어낼 수 있다.

가장 일반적으로 사용되며 변수 또는 메소드 호출, 유효식 등 다수를 포함할 수 있습니다

모든 텍스트, HTML 태그, 또는 JSP 요소는 스크립틀릿 태그 외부에 있어야 합니다.

표현문 태그

<%@ 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 a = 10;
		int b = 20;
		int c = 30;
	%>
	<p>Today's date: <%= new java.util.Date() %></p>
	<br>
	<%= a + b + c %>
	<%-- This comment will not be visible in the page source --%>
	<!-- HTML 코드에서 표시 됨 -->
</body>
</html>

 

CHAPTER 03 디렉티브 태그

디렉티브 태그(directive tag)는 jsp 페이지를 어떻게 처리할 것인지를 설정하는 태그

디렉티브 태그 형식 설명

page <%@ page … %> JSP 페이지에 대한 정보를 설정한다
include <%@ include … %> JSP 페이지의 특정 영역에 다른 문서를 포함한다
taglib <%@ taglib … %> JSP 페이지에서 사용할 태그 라이브러리를 설정한다

page 디렉티브 태그

속성 설명 기본값

language 사용할 프로그래밍 언어를 설정 java
contentType JSP 페이지가 생성할 문서의 콘텐츠 유형 text/html
pageEncoding 인코딩 ISO-8859-1
import JSP 페이지가 사용할 자바 클래스 설정  
session 세션 사용 여부 true
buffer JSP 페이지의 출력 버퍼 크기 8kb
autoFlush 출력 버퍼의 동작 제어를 설정 true
isThreadSafe 멀티스레드 허용 여부 설정 true
info 현재 JSP 페이지에 대한 설명을 설정  
errorPage 현재 JSP 페이지에 오류가 발생했을 때 보여줄 오류 페이지를 설정  
isErrorPage 현재 JSP 페이지가 오류 페이지인지 여부 false
isELIgnored EL 지원 여부 설정 ${} 사용 가 false
isScriptingEnabled 스크립트 태그 사용 여부  
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.io.*, java.lang.*" %>
<%@ page session="true" %>
<%@ page buffer="8kb" %>
<%@ page autoFlush="true" %>
<%@ page isThreadSafe="true" %>
<%@ page info="directive tag example" %>
<%@ page errorPage="MyErrorPage.jsp" %>
<%@ page isErrorPage="false" %>
<%@ page isELIgnored="false" %>
<%@ page isScriptingEnabled="true" %>
<%-- <%@ page contentType="application/msword" %> --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
	<%@ page import="java.util.Date" %>
	Today is <%=new Date() %>
</body>
</html>

include 디렉티브 태그

HTML, JSP, 텍스트 파일 include 가능, JSP 페이지 어디에서든 선언 가능

현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정, 그렇지 않으면 전체 URL(또는 상대 경로)을 설정

설정된 파일의 원본 내용을 ‘있는 그대로’ 붙여넣은 다음 전체 페이지를 자바코드(서블릿)로 변환

header, footer 같이 반복적으로 사용되는 부분에 사용

<%@ 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>
	<%@ include file="include01_header.jsp" %>
	<h4>----------- 현재 페이지 영역 ------------</h4>
</body>
</html>

04 taglib 디렉티브 태그

현재 JSP 페이제에 표현 언어, JSTL, 사용자 정의 태그 등 태그 라이브러리를 설정하는 태그