Download presentation
Presentation is loading. Please wait.
Published byΠηρω Ζυγομαλάς Modified 5년 전
1
JSP(Java Server Page) JSP기초 JSP 지시어 PSLAB 남지민 년 2월 17일
2
1.1 JSP 소개 동적인 웹 문서를 포함하는 응용 프로그램을 작성 할 수 있게 하는 자바 플랫폼 기술 JSP 장점
동적인 내용과 정적인 내용을 분리 개발 도구 지원 컴포넌트와 태그의 재사용성 N-tier 엔터프라이즈 응용 프로그램 구조 지원 동적인 내용과 정적인 내용을 분리(태그랑 스크립트) 개발 도구 지원(톰캣) 컴포넌트와 태그의 재사용성(모든 플랫폼에서 수정 없이 사용가능) N-tier 엔터프라이즈 응용 프로그램 구조 지원 다중계층(N-tier) Multi-Tier(혹은 n-Tier)환경에서의 Performance, 즉 "성능"을 얘기하는 것 이죠. 그 이외에도 메모리 부족예방, 태그 확장성 지원
3
1.2 JSP 데이터의 처리 JSP를 사용하면 식이나 스크립트렛에서 선언하지 않고 사용할 수 있는 객체들
스크립트렛에서 선언된 변수는 다른 스크립트렛에서도 사용가능 Row랑 col 밑에서 다시 사용 퍼센트로 열고 닫기-스크립트렛
4
1.3 JSP에 포함되는 컴포넌트 템플릿 데이터 JSP지시어 JSP액션 스크립팅 원소 식 스크립렛 템플릿 데이터(태그)
JSP액션 useBean, XML문법 스크립팅 원소 jsp 페이지 안에 자바 프로그램을 삽입할 수 있는 기능 식 : <%= %> 스크립렛 : <% %> jsp:useBean 주어진 스코프에서 자바 객체 인스턴스를 id와 연결시킨다. 액션은 주어진 id로 기존의 객체를 찾다가 발견하지 못하면 다른 속성을 이용해서 객체를 생성한다. 적어도 하나의 type과 class는 존재해야 하며, class와 beanName이 동시에 유효하지는 않다 jsp:useBean는 body 부분을 가질 수 있고, body가 있는 경우에는 body에 스크립트렛이나 jsp:setProperty를 사용할 수 있다
5
1 2 3 4 5 6 7 8 9 내장객체 주요역할 상속되는클래스 Request 사용자의 요청처리
Javax.servlet.http.HttpServletRequest 2 Response 처리결과응답 Javax.servlet.http.HttpServletResponse 3 pageContext Context정보를 담는다. Javax.servlet.jsp.PageContext 4 Session 사용자별 세션정보처리 Javax.servlet.http.HttpSession 5 Appication 웹서버의 어플리케이션처리 Javax.servlet.ServletContext 6 Out 사용자에게 output스트림 처리 Javax.servlet.jsp.JspWriter 7 Exception 예상치못한 오류처리 Javax.lang.Throwable 8 Page 현페이지의 정보를 담고 처리 Javax.servlet.jsp.HttpJspPage 9 config 해당페이지의 초기화환경처리 Javax.servlet.ServletConfig
6
예 <% String name = request.getParameter("name").trim();
if(name != null && name.length() != 0) { out.println(name); } else { out.println("your name please"); } %> <LI> 주소: String addr = request.getParameter("addr").trim(); if(addr != null && addr.length() != 0) { out.println(addr); out.println("?"); HTML파일 JSP파일
7
1.3 JSP 엔진 JSP는 JSP 엔진에 의해 실행되며, JSP 엔진은 웹서버에 포함되어 있거나
별도의 응용 프로그램으로 구성될 수도 있다. 일반적으로는 서블릿 엔진이 JSP 엔진의 기능을 제공한다. JSP 엔진은 클라이언트로부터의 요청(request)를 JSP 페이지에 전달하고, JSP 페이지로부터의 응답(response)를 클라이언트에 전달한다. JSP의 의미 모델은 서블릿의 모델을 사용하고, JSP 페이지는 클라이언트의 요청으로부터 어떻게 응답을 생성할 것인가를 기술한다. 스크립렛이 다시 사용될 수 있어서 HTML이 완전히 닫힌 다음에 Destroy가 일어난다 서블릿 코드 생성 단계(translation phase) 이 단계에서는 JSP 페이지에 해당되는 작업을 수행할 클래스를 생성한다. 즉, JSP 페이지는 서블릿으로 변환되고, 실제로 실행될 때는 서블릿이 실행된다. 이 작업은 한번만 수행된다. 컴파일 단계(compilation phase) "서블릿 코드 생성 단계"에서 생성된 클래스는 컴파일 단계를 거쳐 컴파일된다. 요청 처리 단계(request processing phase) 요청 처리 단계에서는 생성된 서블릿 클래스를 통해 클라이언트의 요청이 처리된다.
8
2 JSP 지시어 JSP엔진에 전달하는 메시지 page 지시어 include 지시어 taglib 지시어
include 지시어 : 서블릿 코드 생성시 텍스트나 코드를 JSP파일 안으로 포함 taglib 지시어 : 사용자 정의 태그
9
2.1 page 지시어 속성 language isThreadSafe extends info import errorPage
session buffer autoFlush isThreadSafe info errorPage isErorrPage pageEncoding language 속성 : 선언, 식 스크립트렛에 사용되는 스크립트 언어를 기술 extends 속성 : JSP 페이지에 의해 생성된 클래스의 부모 클래스를 지정하기 위해서 사용. import 속성 : 스크립트렛과 식에서 사용할 수 있는 타입을 기술하기 위해서 사용. session 속성 : 페이지가 세션에 참여할 것인가 여부를 기술. buffer 속성 : 페이지 내용을 출력하는 JspWriter타입의 out변수의 버퍼링 모델을 설정. autoFlush 속성 : 버퍼의 내용이 자동적으로 플러쉬(flush)될 것인지 여부를 기술. isThreadSafe 속성 : 현재 페이지의 쓰레드 세이프(thread safe)정도를 기술. info 속성 : JSP 페이지에 대한 정보를 제공하는 문자열을 기술. errorPage 속성 : 예외가 발생하는 경우에 에러를 처리하는 페이지의 상대 URL을 기술. isErorrPage 속성 : JSP 페이지의 MIME 타입과 문자 인코딩을 정의. pageEncoding 속성 : JSP 페이지의 문자 인코딩을 기술. 예) page info="my latest JSP Example V1.1" %>
10
2.2 include, taglib지시어 include 지시어 taglib 지시어
서블릿 코드 생성시 텍스트나 코드를 JSP파일 안으로 포함 예) include file="copyright.jsp" %> taglib 지시어 사용자가 원하는 태그를 생성해서 사용하는 것을 가능하게 하는 태그라이브러리. taglib uri="tagLibraryURI" prefix="tagPrefix"%>
11
4. 스크립트 원소 5. JSP 액션 Sookmyung Women’s Univ. Pslab Moon, Sewon
JSP(Java Server Page) 4. 스크립트 원소 5. JSP 액션 Sookmyung Women’s Univ. Pslab Moon, Sewon
12
4.1 스크립팅 원소 선언 : 변수나 메소드 선언, JSP 페이지가 초기화 될 때 초기화
ex. <%! Int i = 0; %> 스크립트렛 : 코드 조각들 포함, 클라이언트 요청이 처리되는 동안 실행 ex. <% if ( num > 50 ){ %> 식: String 타입으로 변환해서 클라이언트에 전달 (그렇지 않을 경우 ClassCastException 예외 발생) ex. <%=request.getMethod() %>
13
4.2 스크립팅 원소 예
14
5.1 JSP 액션 JSP 액션 객체를 생성, 변경, 사용하는 등의 작업
스코프 속성 (page, request, session, application) jsp:useBean - 객체 인스턴스를 id와 연결 jsp:setProperty - bean에서 속성값을 할당 jsp:getProperty - bean 인스턴스 속성 값을 String 타입으로 변화해서 out으로 출력 jsp:include - 정적,동적인 자원을 현재 페이지에 포함 jsp:forward - 디스패치의 기능
15
5.2 JSP 액션 예 nameBean.html NameBean.java nameBean.jsp
16
5.2 JSP 액션 예 addr nameBean.html NameBean.java nameBean.jsp name
Public void setName(String name){…} Public void setAddr(String addr){…} NameBean.java <jsp:setProperty… property = “name” /> <jsp:setProperty… property = “addr” /> nameBean.jsp
17
5.2 JSP 액션 예 Forward.jsp one.jsp two.jsp
Similar presentations