01 JSP 기본

알재·2023년 6월 14일
0

JSP & Servlet

목록 보기
1/16

1.3 지시어(Directive)

기본 구문

<%@ 지시어종류 속성1="값1" 속성2="값2" ... %>
  • page : JSP 페이지에 대한 정보를 설정
  • include : 외부 파일을 현재 JSP 페이지에 포함
  • taglib : 표현 언어에서 사용할 자바 클래스나 JSTL을 선언

1.3.1 page 지시어

속성내용기본값
info페이지에 대한 설명을 입력없음
language페이지에서 사용할 스크립팅 언어를 지정java
contentType페이지에서 생성할 MIME 타입을 지정없음
pageEncodingcharset과 같이 인코딩을 지정ISO-8859-1
import페이지에서 사용할 자바 패키지와 클래스를 지정없음
session세션 사용 여부를 지정true
buffer출력 버퍼의 크기를 지정. 버퍼를 사용하지 않으려면 "none"으로 지정8KB
autoFlush출력 버퍼가 모두 채워졌을 때 자동으로 비울 지를 결정. buffer 속성이 none일 떼 false로 지정하면 에러가 발생true
trimeDirectiveWhitespaces지시어 선언으로 인한 공백을 제거할지 여부를 지정false
errorPage해당 페이지에서 에러가 발생했을 때 에러 발생 여부를 보여줄 페이지를 지정없음
isErrorPage해당 페이지가 에러를 처리할지 여부를 지정false

language,contentType,pageEncoding 속성

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  • language : 스크립팅 언어는 자바를 사용
  • contentType : MIME 타입은 text/html이고, 캐릭터셋은 UFT-8
  • pageEncoding : 소스 코드의 인코딩 방식은 UTF-8

import 속성

<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="java.util.Date"%>

java에서 사용하는 SimpleDateFormat와 Date를 JSP파일에 임포트

errorPage,isErrorPage 속성

JSP 실행중 에러가 발생하면 에러화면이 이렇게 뜬다.

이러한 상황은 사용자에게 서비스에 대한 신뢰도를 떨어뜨리기에 방지하여야한다.

errorPage,isErrorPage 속성을 사용하여 개발자가 지정한 JSP 화면을 보여줄 수있다.

ErrorPage.jsp
<%@ page errorPage="IsErrorPage.jsp"%>
IsErrorPage.jsp
<%@ page isErrorPage="true"%>

errorPage 속성에 에러시 출력할 페이지를 지정하고 isErrorPage를 true로 설정하면 IsErrorPage가 출력된다.

trimDirectiveWhitespaces 속성

사진처럼 페이지 소스 보기를하면 공백이 있다.

그 이유는 page 지시어가 있는 공간이 공백으로 처리되었기 때문이다.

<%@ page trimDirectiveWhitespaces="true"%>

trimDirectiveWhitespaces 속성을 true 로 하면 공백을 제거할 수 있다.

buffer,autoFlush 속성

JSP 파일은 서블릿 코드로 변환된 후 컴파일되어 class 파일로 만들어진다.

이를 실행한 결과물을 HTML 형태로 웹브라우저에 보내 화면에 출력하는 과정을 거친다.

이 과정에서 웹 브라우저로 즉시 전송하지 않고, 출력할 내용을 버퍼에 저장했다가 일정량이 되었을 때 전송한다.

JSP는 버퍼를 사용함으로써 포워드와 에러 페이지 처리를 한다.

JSP가 생성한 결과를 일단 버퍼에 저장하고 실행도중 에러가 발생하면 버퍼에 저장된 내용을 삭제하고 에러 화면을 표시한다.

<%@ page buffer="1kb"%>
<%@ page buffer="none"%>

버퍼의 크기를 설정할 수 있고

버퍼를 사용하고 싶지 않다면 none 로 설정한다.

<%@ page autoFlush="true"%>

true 이면 버퍼가 채워지면 자동으로 플러시하고

false 이면 버퍼가 채워지면 예외를 발생시킨다.


1.3.2 include 지시어

<%@ include file="포함할 파일의 경로">

1.4 스크립트 요소(Script Elements)

1.4.1 선언부(Declaration)

<%! 멤버 변수나 메서드 선언 %>

선언부에서는 멤버 변수나 메서드를 선언한다.

서블릿으로 변환 시 _jspService() 메서드 외부에 선언된다.

1.4.2 스크립틀릿(Scriptlet)

<% 자바 코드 %>

JSP 페이지가 요청을 받을 때 실행돼야 할 자바 코드를 작성하는 영역.

서블릿으로 변환 시 _jspService() 메서드 내부에 기술된다.

1.4.3 표현식(Expression)

<%= 자바 표현식 %>

실행 결과로 하나의 값이 남는 문장을 뜻한다.
상수, 변수, 연산자를 사용한 수식, 반환값이 있는 메서드 호출등이다.

스크립트요소를 사용한 예시이다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!  // 선언부(메서드 선언)
public int add(int num1 , int num2) {
    return num1 + num2;
}
%>
<html>
<head><title>스크립트 요소</title></head>
<body>
<%  // 스크립틀릿(자바 코드)
int result = add(10, 20);
%>
덧셈 결과 1 : <%= result %> <br /> // 표현식(변수)
덧셈 결과 2 : <%= add(30, 40) %>   // 표현식(메서드 호출)
</body>
</html>
profile
저장소

0개의 댓글

관련 채용 정보