Download presentation
Presentation is loading. Please wait.
1
제 04 장 JSP 기본 문법 2008 2학기 인터넷비즈니스과 강 환수 교수
2
변수, 계산식, 함수 호출 결과를 문자열 형태로 출력
스크립트 태그 스크립트 태그 종류 종류 태그 형식 사용 용도 지시어(directives) %> JSP 페이지의 속성을 지정 선언(declaration) <%! %> 소속변수 선언과 메소드 정의 표현식(expression) <%= %> 변수, 계산식, 함수 호출 결과를 문자열 형태로 출력 스트립트릿(scriptlet) <% %> 자바 코드를 기술 주석(comments) <% %> JSP 페이지의 설명 추가
3
액션 태그와 커스템 태그 액션 태그 커스템 태그 XML 스타일의 태그로 기술한 동작 기능을 수행하는 방식
새로운 태그를 정의하여 이용하는 방법으로 JSP 만의 고유한 방식 종류 태그 형식 사용 용도 액션 태그 (action Tag) <jsp:include page=”test.jsp” /> 현재 JSP 페이지에서 다른 페이지를 포함 <jsp:forward page=”test.jsp” /> 현재 JSP 페이지의 제어를 다른 페이지에 전달 <jsp:plugin type=”applet” code=”test” /> 자바 애플릿을 플러그인 <jsp:useBean id=”login” class=”LoginBean” /> 자바빈을 사용 <jsp:setProperty name=”login” property=”pass” /> 자바빈의 속성을 지정하는 메소드를 호출 <jsp:getProperty name=”login” property=”pass” /> 자바빈의 속성을 반환하는 메소드를 호출 커스템 태그 (Custom Tag) <tag:printData dbname=”mydb” table=”memb” /> 사용자가 직접 정의한 태그를 이용
4
스크립트릿 자바 코드 삽입 <% code fragment %>
<% out.print(“스크립트릿 태그”); %>
5
표현식 변수의 출력 <%= expression %>
6
JSP 소스의 서블릿 변환 이클립스에서 서블릿 위치 톰캣 JSP 엔진 서블릿 파일의 위치 JSP 소스인 *.jsp
서블릿 소스 *_jsp.java로 자동 생성, 서블릿 클래스를 실행 서블릿 파일의 위치 작업공간 [C:\2009 JSP workspace] 하부 [.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\ch04\org\apache\jsp] 폴더 하부에 위치
7
서블릿 파일 increment_jsp.java
8
서블릿 소스 클래스 increment_j네 _jspxFactory 등 4개의 소속 변수
_jspInit(), _jspDestroy(), _jspService() 등 4개의 메소드로 구성
9
실행 시 오류발생 : 컴파일 오류(1) 서블릿 변환 후 컴파일 오류 JSP 소스를 서블릿으로 변환 후 컴파일 시 발생하는 오류
문법 오류(syntax error) 이클립스 편집기에서도 소스 코딩 순간에 오류 표시
10
실행 시 오류발생 : 컴파일 오류(2) 패키지 탐색기
11
서블릿 실행 시 오류 실행 시 오류 변환된 서블릿을 실행할 때 발생하는 오류
ArrayIndexOutOfBoundsException
12
실행 오류 수정 배열 첨자 수정 후 실행
13
선언 변수의 선언과 메소드 구현 <%! declaration %>
선언 태그에서 선언되는 변수는 소속 변수(membered variables) 스크립트릿에서 선언되는 변수는 메소드 _jspService() 내부에서 선언되는 지역 변수(local variables)
14
JSP의 지역변수와 소속변수 스크립트릿과 선언에서의 변수 선언 실행할 때마다 소속변수 memi는 증가하는 것을 알 수 있다.
15
JSP의 지역변수와 소속변수 서블릿 소스 membervar_jsp.java
16
주석 HTML 주석 JSP 주석 HTML 주석 내부에서 <!-- … -->
HTML 태그를 위한 주석으로 웹 브라우저의 [소스 보기]에서 HTML 내용과 함께 그 주석 내용이 보임. JSP 주석 <%-- … --%> JSP 서버 프로그램을 위한 주석으로 실행된 웹 브라우저의 [소스 보기]에서 표시되지 않음. HTML 주석 내부에서 JSP의 스크립트릿 태그나 표현식 태그를 출력으로 이용가능 <% String str = "오후"; %> <!-- 지금은 <%= str %>입니다. -->
17
주석 예제 jspcomments.jsp
18
자바 주석의 이용 JSP 주석 일반 자바 주석 *.jsp의 소스에서만 보이는 주석
실행 시 생성된 서블릿 프로그램에서는 보이지 않음 일반 자바 주석 JSP 소스에서 자바 코딩이 가능한 부분에서 이용 실행 시 생성된 서블릿 프로그램에서도 볼 수 있는 주석
19
자바 주석의 HTML 소스와 서블릿 소스
20
지시자 지시자 형식 태그 형태를 이용하여 JSP 페이지에 대한 속성 또는 특별한 지시 사항을 지정하는 태그 directives property=”property-value” %> directives와 속성 property 모두 대소문자를 구분 속성값은 반드시 “속성값”과 같이 큰타옴표를 이용 JSP 지시자의 종류 page, include, taglib 3가지 종류 형태 용도 page page property=”property-value” %> JSP 페이지에 대한 속성 지정 include include file=”file-name” %> 태그 부분에 지정한 페이지를 정적으로 삽입 taglib taglib uri=”uri-value” prifix=”pfx-value” %> 새로운 태그를 정의하여 이용
21
page 지시자 기능 JSP 컨테이너에서 JSP 페이지 대한 여러 속성과 값을 지정하는 지시자
page 지시자는 language, contentType, pageEncoding 등의 속성을 지정 한번에 한 개의 속성뿐만 아니라 서로 다른 여러 개의 속성을 지정
22
language , contentType language 속성 contentType 속성
JSP 페이지의 표현식, 선언, 스크립트릿에서 사용할 스크립트 언어의 종류를 지정하는 속성 page language=”java” %> contentType 속성 JSP 페이지의 MIME(Multipurpose Internet Mail Extension) 유형(type)을 지정하는 속성 지정하지 않으면 “text/html”이 기본 값 MIME 유형 JSP 페이지 자료를 네트웍에서 주고 받을 때 서로 주고 받는 문서의 타입을 정의함으로써 이를 보내고 받는 시스템에서 원활하게 자료를 처리하려는 목적에서 나온 속성 page contentType=”text/html” %> page contentType=”text/html; charset=ISO ” %> page contentType=”text/html; charset=EUC-KR” %>
23
pageEncoding, info pageEncoding 속성 info 속성 JSP 페이지의 문자 인코딩 방식을 기술하는 속성
지정하지 않으면 기본 값이 [ISO ] page pageEncoding =”ISO ” %> 한글을 지원하기 위해서는 [EUC-KR]로 지정 page pageEncoding =”EUC-KR” %> info 속성 JSP 페이지 전체에 대한 설명이나 버전, 작성자, 작성일자와 같은 정보를 문자열로 기술하는 부분 길이에는 제한이 없음. page info=”JSP 페이지에 대한 설명이나 정보” %>
24
import 속성 import 속성 JSP 페이지에서 자동 import
page import=”java.util.*” %> page import=”java.util.Date, java.sql.*” %> JSP 페이지에서 자동 import [java.lang.*] [javax.servlet.*], [javax.servlet.http.*], [javax.servlet.jsp.*]
25
import 예제 import.jsp
26
isErrorPage, errorPage
JSP 페이지가 오류를 처리하는 페이지인지를 true 또는 false로 지정하는 속성 지정하지 않으면 기본값이 false이고 필요하면 true로 지정 page isErrorPage=”true” %> isErrorPage를 true로 지정하면 내장객체라 부르는 exception 변수를 사용하여 에러를 처리 errorPage 속성 JSP 페이지에서 발생한 오류를 처리하는 JSP 페이지를 기술하는 방법 page errorPage=”exception.jsp” %> 오류를 처리하는 전담 JSP 페이지를 지정 이 시스템을 사용하는 사용자에게 일관성 있게 오류 처리를 해줄 수 있어 시스템의 신뢰성을 높일 수 있는 장점
27
errorPage 예제 errorpage.jsp, exceptioon.jsp
28
isThreadSafe, isELIgnored
true 또는 false로 지정, true가 기본 값 page isThreadSafe=”false” %> isELIgnored 속성 표현 언어인 EL(Expression Language)의 사용 여부를 지정하는 방법 지정하지 않으면 false가 기본 값 표현 언어를 사용한다는 의미 만일 표현 언어를 사용하지 않으려면 값을 true로 지정 page isELIgnored=”true” %>
29
buffer buffer 속성 버퍼링 JSP 페이지의 출력 버퍼링 메모리를 크기를 지정하는 방법
지정하지 않으면 8kb가 기본 값 buffer 속성 값은 none 또는 16kb와 같이 다른 크기의 값으로 지정할 수 있다. page buffer=”16kb” %> 버퍼링 일반적으로 입력이나 출력에 이용하는 방식으로 프로세스의 처리 속도보다 입출력의 속도가 느리기 때문에 어느 정도 자료를 모아서 입출력을 처리하는 방법 양동이에 어느 정도의 물이 차야 물을 쏟아내는 양동이와 같이 버퍼링 메모리에 지정한 크기만큼의 자료가 쌓여야 출력을 하는 방식 page buffer=”none” %> buffer 속성 값은 none이면 버퍼링을 하지 않겠다는 의미로 출력 자료가 버퍼를 거치지 않고 바로 웹 브라우저에 출력
30
autoFlush autoFlush 속성 주의점 버퍼가 모두 찼을 때 자동으로 출력하는지를 지정하는 방법
지정하지 않으면 true가 기본 값으로, 버퍼 크기의 자료가 모두 찼을 때 자동으로 웹 브라우저에 출력한다는 의미 page autoFlush=”false” %> 만일 autoFlush 속성을 false로 지정하면 버퍼 크기만큼 차기 전, 중간 중간에 수동으로 직접 버퍼를 비워야 출력이 가능 버퍼 크기의 자료가 모두 찼을 경우, 오버플로우(overflow) 예외가 발생 주의점 다음과 같이 autoFlush 값이 false이면 수동으로 버퍼링을 해야 하는데, buffer 값을 none으로 지정하면 버퍼링을 하지 않겠다는 것으로 잘못된 지정 방법 <%-- 다음은 잘못된 page 버퍼 지정 방법이다. --%> page buffer=”none” %>
31
session session 속성 세션(session) JSP 페이지에서 세션을 사용하는 지의 여부를 지정하는 방법
지정하지 않으면 true가 기본 값으로 세션을 이용 가능 page session=”false” %> 세션(session) 웹 브라우저의 사용자를 구분하는 단위로 사용자 별로 웹 서버에 필요한 정보를 임시로 저장하는 방법 세션 예 어느 사이트에 접속했을 때 한 번 로그인 한 후 어느 정도 시간이 지나면 세션이 끊어져 더 이상 사용할 수 없다거나 장바구니에 새로운 상품을 이전 목록에 추가
32
include 지시자 file 속성 include 지시자는 태그를 기술한 부분에 지정한 파일을 삽입하는 기능
include file=”file_name” %>
33
include 예제 header.jsp, footer.html
34
Thank You !
Similar presentations