디렉티브(Directive) : page, taglib, include

스크립트 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)

표현언어(Expression Language)

기본 객체(Implicit Object) : request, response, session, application, page 등

정적인 데이터

표준 액션 태그(Action Tag)

커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL)



디렉티브


 디렉티브

 설명 

 page

 JSP 페이지에 대한 정보를 지정한다. JSP가 생성하는 문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 JSP 페이지에서 필요로 하는 정보를 입력한다.

 taglib

 JSP 페이지에서 사용할 태그 라이브러리를 지정한다.

 include

 JSP 페이지의 특정 영역에 다른 문서를 포함시킨다.


page 디렉티브


 속성

 설명

 기본값

 language

 JSP 스크립트 코드에서 사용되는 프로그래밍 언어를 지정한다. JSP 2.1 버전까지는 스크립트 언어로서 자바만을 지원하고 있다.

 java

 contentType

 JSP가 생성할 문서의 타입을 지정한다.

 text/html

 import JSP 페이지에서 사용할 자바 클래스를 지정한다.

 

 session

 JSP 페이지가 세션을 사용할지의 여부를 지정한다.

"true"일 경우 세션을 사용하고 "false"일 경우 세션을 사용하지 않는다.

 true

 buffer

 jsp 페이지의 출력 버퍼크기를 지정한다. "none"일 경우 출력 버퍼를 사용하지 않으며, "8kb"라고 입력할 경우 8킬로바이트 크기의 출력 버퍼를 사용한다.

 최소 8kb

 autoFlush

 출력 버퍼가 다 찼을 경우 자동으로 버퍼에 있는 데이터를 출력 스트림에 보내고 비울지의 여부를 나타낸다. "true"일 경우 버퍼의 내용을 웹 브라우저에 보낸 후 버퍼를 비우며, "false"일 경우 에러를 발생 시킨다.

 true

 info JSP 페이지에 대한 설명을 입력한다.

 

 errorPage

 JSP 페이지를 실행하는 도중 에러가 발생할 때 보여줄 페이지를 지정한다.

 

 isErrorPage

 현재 페이지가 에러가 발생될때 보여지는 페이지인지의 여부를 지정한다. "true"일 경우 에러페이지이며, "false"일 경우 에러 페이지가 아니다.

 false

 pageEncoding

 JSP 페이지 자체의 캐릭터 인코딩을 지정한다.

 

 isELIgnored

(2.0)

 "true"일 경우 표현 언어를 지원하며, "false"일 경우 표현언어를 지원하지 않는다.

기본 값은 web.xml 파일이 사용하는 JSP 버전 및 설정에 따라 다르다.

 

 deferredSyntaxAllowedAsLiteral

(2.1)

 #{ 문자가 문자열 값으로 사용되는 것을 허용할지의 여부를 지정한다.

 false

 trimDirectiveWhitespaces

(2.1)

 출력 결과에서 템플릿 텍스트의 공백 문자를 제거할지의 여부를 지정한다.

 false


예 : 

<%@ page contentType = "text/html; charset = euc-kr" %>

<%@ page import = "java.util.Calendar" %>

<%@ page trimDirectiveWhitespaces = "true" %>


스크립트


스크립트릿(Scriptlet) : 자바 코드를 실행한다.

표현식(Expression) : 값을 출력한다.

선언부(Declaration) : 자바 메서드(함수)를 만든다.


스크립트릿(Scriptlet)


JSP 페이지에서 자바 코드를 실행할 때 사용되는 코드의 블록.


예 : 

<%

int sum = 0;

for (int i = 1; i<=10; i++){

sum = sum + i;

}

%>


표현식(Expression)


어떤 값을 출력 결과에 포함시키고자 할때 사용


예 :

<%=sum%>


선언부(Declaration)


JSP 페이지의 스크립트릿이나 표현식에서 사용할 수 있는 함수를 작성할 때 사용된다. 함수는 어떤 기능을 수행하는 단위로서 자바에서는 함수를 메서드라고 부른다. 선언부는 표현식외에도 스크립트릿에서도 호출할 수 있다.


예 : 

<%!

public int multiply(int a, int b){

int c= a*b;

return c;

}

%>



기본객체



 기본 객체

 실제 타입

 설명

 request

 javax.servlet.http.HttpServletRequest 또는

 javax.servlet.ServletRequest

 클라이언트의 요청 정보를 저장한다.
 response

 javax.servlet.http.HttpServletResponse 또는

 javax.servlet.ServletResponse

 응답 정보를 저장한다.

 pagaContext

 javax.servlet.jsp.PageContext

 JSP 페이지에 대한 정보를 저장한다.

 session

 javax.servlet.http.HttpSession

 HTTP 세션 정보를 저장한다.
 application

 javax.servlet.ServletContext

 웹 어플리케이션에 대한 정보를 저장한다.

 out

 javax.servlet.jsp.JspWriter

 JSP 페이지가 생성하는 결과를 출력할때 사용되는 출력 스트림이다.

 config

 javax.servlet.ServletConfig

 JSP 페이지에 대한 설정 정보를 저장한다.

 page

 java.lang.Object

 JSP 페이지를 구현한 자바 클래스 인스턴스 이다.

 exception

 java.lang.Throwable

 예외 객체. 에러 페이지에서만 사용된다.



1. request 기본객체


request 기본 객체가 제공하는 기능

- 클라이언트(웹 브라우저)와 관련된 정보 읽기 기능

- 서버와 관련된 정보 읽기 기능

- 클라이언트가 전송한 요청 파라미터 읽기 기능

- 클라이언트가 전송한 요청 헤더 읽기 기능

- 클라이언트가 전송한 쿠기 읽기 기능(향후 추가)

- 속성 처리 기능(향후 추가)


클라이언트 정보 및 서버 정보 읽기


request 기본 객체의 클라이언트 및 서버 정보 관련 메서드



 메서드

 리턴 타입

 설명

 getRemortAddr()

 String

 웹 서버에 연결한 클라이언트의 IP 주소를 구한다. 게시판이나 방명록 등에서 글 작성자의 IP 주소가 자동으로 입력되기도 하는데 이때 입력되는 IP 주소가 바로 이 메서드를 사용하여 구한 것이다.

 getContentLength()

 long

 클라이언트가 전송한 요청 정보의 길이를 구한다. 전송된 데이터의 길이를 알 수 없는 경우 -1 을 리턴한다.

 getCharacterEncoding()

 String

 클라이언트가 요청 정보를 전송할 때 사용한 캐릭터의 인코딩을 구한다.

 getContentType() String

 클라이언트가 요청 정보를 전송할때 사용한 컨텐트의 타입을 구한다.

 getProtocol()

 String 클라이언트가 요청한 프로토콜을 구한다.
 getMethod() String 웹 브라우저가 정보를 전송할 때 사용한 방식을 구한다.

 getRequestURI()

 String

 웹 브라우저가 요청한 URL에서 경로를 구한다.

 getContextPath() String

 JSP 페이지가 속한 웹 어플리케이션의 컨텍스트 경로를 구한다.

 getServerName()

 String 연결할 때 사용한 서버 이름을 구한다.

 getServerPort()

 int

 서버가 실행 중인 포트 번호를 구한다.

 기타 : getRequestURL()이 존재


예 : 

클라이언트 IP = <%=request.getRemoteAddr()%> <br>

요청정보 길이 = <%=request.getContentLength()%> <br>

요청정보 인코딩 = <%= request.getCharacterEncoding()%> <br>

요청정보 컨텐트 타입 = <%=request.getContentType()%> <br>

요청정보 프로토콜 = <%=request.getProtocol()%> <br>

요청정보 전송방식 = <%=request.getMethod()%> <br>

요청 URI = <%=request.getRequestURI()%> <br>

컨텍스트 경로 = <%=request.getContextPath()%> <br>

서버이름 = <%=request.getServerName()%> <br>

서버포트 = <%=request.getServerPort()%> <br>


1.1 HTML 폼과 요청 파라미터의 처리


request 기본 객체의 파라미터 읽기 메서드


 메서드

 리턴 타입

 설명

 getParameter(String name) String

 이름이 name인 파라미터의 값을 구한다.
존재하지 않을 경우 null 을 리턴한다.

 getParameterValues(String name)

 String[]

 이름이 name인 파라미터의 값을 배열로 구한다.
존재하지 않을 경우 null 을 리턴한다.

 getParameterNames()

 java.util.Enumeration

 웹 브라우저가 존송한 파라미터의 이름을 구한다.

 getParameterMap()

 java.util.Map

 웹 브라우저가 전송한 파라미터의 맵을 구한다. 맵은 <파라미터 이름, 값> 쌍으로 구성된다.


블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,