Presentation is loading. Please wait.

Presentation is loading. Please wait.

1. JSP(Java Server Pages) 소개

Similar presentations


Presentation on theme: "1. JSP(Java Server Pages) 소개"— Presentation transcript:

1 1. JSP(Java Server Pages) 소개
웹 프로그래밍 전반적인 환경을 이해 JSP의 기술 및 동작방식에 대해 이해 JSP 공부 방법과 알아야 하는 기술 및 수준

2 목차 웹과 동적 컨텐츠 JSP 개요 JSP의 특징 Servlet의 기본 JSP의 동작 원리 JSP 학습을 위한 관련 기술

3 Web browser history 1989: World Wide Web 개발
Tim Berners-Lee (CERN) : Xmosaic  Netscape Marc Andreessen (NCSA) Javascript (Navigator2.0) 1995: Yahoo, Amazon, eBay, … Jerry Yang, David Filo, Jeffrey Bezos, Pierre Omidyar ~: MS Explorer 2004~: Firefox (Mozilla), Safari (Apple), Chrome (Google), Opera

4 웹과 동적 컨텐츠 웹의 동작 Client HTTP Server

5 정적 페이지, 동적 페이지 정적 페이지 : 고정된, 변하지않는’ 성격을 가진 페이지
동적 페이지 : 자동으로 생성된 페이지, 기존의 웹 서버에 새로운 기능을 가진 프로그램을 탑재하여 동적으로 HTML을 생성 <<동적인 컨텐츠 생성을 수용하는 서버측 구성>>

6 CGI(Common Gateway Interface)
동적 페이지를 위한 기술 웹 서버와 동적 컨텐츠 생성을 맡은 프로그램 사이에서 정보를 주고받는 인터페이스 초기 웹 프로그래밍에 사용된 기술 프로세스 단위로 실행되기 때문에 사용자가 증가하면 급격히 성능 저하 프로세스 a.cgi 사용자 증가에 따른 시스템 성능의 급격한 저하

7 확장 CGI 전통적인 CGI 방식의 단점들을 보완한 기술
매번 프로세스를 생성하는 방식이 아니고 동일한 프로그램에 대해서는 하나의 프로세스를 생성한 후 여러 개의 스레드로서 요청을 처리하는 방식 -> 시스템의 부하를 줄임 ASP, PHP, Servlet, JSP 등 ASP – MS사에서 만들어진 확장 CGI, 특정 웹 서버와 OS에 동작 PHP – ASP와는 달리 특정 영역에서만 동작하지않음, 적은 명령어들로서 프로그래밍이 가능, 기능들이 미약 Servlet – Sun사, Java 언어를 기반으로 하여 동적인 컨텐츠를 생성, Java 코드안에 HTML태그가 혼재되어 있어서 작업에 대한 분리적인 측면에서 효율성이 떨어짐 JSP – Sun사, Java언어를 기반, HTML태그 사이에 스크립트 언어 형식으로 프로그램을 작성

8 서버측 스크립트 (Server Side Script)
서버측에서 동적인 컨텐츠 생성을 담당하는 기술 서버측에 위치해서 실행되는 스크립트 언어 HTML과 스크립트 언어를 함께 사용할 수 있는 기술로 웹 서버에서 해석 데이터베이스 연동 처리 등 다양한 구현이 가능 별도의 컴파일 과정없이 HTML 태그 수정 가능 JSP, Servlet, PHP, CGI, ASP 클라이언트측 스크립트(Client Side Script) 웹 브라우저에서 실행되는 언어 자바 스크립트, VB 스크립트, Jscript

9 웹 프로그래밍 언어의 종류 HTML은 WWW기반의 웹의 발전에 가장 중요한 역활을 한 마크업언어이다.
즉 정보를 한곳에 모아주는 역할을 하기 때문이다. 마크업언어는 일련의 요소를 단순하게 나열 요소들은 어떠한 특수문자들에 의해 구분되며, 특수문자안에 포함되어있는 일련의 구문이나 다른 항목을 어떻게 표시할지를 정하는 언어이다. HTML은 항상 같은 정보를 표시하는 정적페이지 그러나 정보는 늘 바뀌게 되므로 사실 항상 같은 내용을 표시한다는 것은 잘못된 정보를 표시할 가능성도 있다는 문제점을 갖는다

10 웹 프로그래밍 언어의 종류 CGI(Common Gateway Interface)
웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약 CGI는 C/C++등의 프로그래밍 언어를 숙달되게 사용할 줄 알아야 하는 것은 물론, 해당 애플리케이션이 생성한 텍스트을 조금이라도 변경해야하는 작업을 수행할 때마다, 실행파일을 다시 컴파일 해야한다는 단점을 갖고 있다.

11 웹 프로그래밍 언어의 종류 ASP(Active Server Page)
VB언어를 기반으로 스크립트방식으로 동적인 웹 페이지를 작성할 수 있도록 지원하는 기술 ASP는 ActiveX라는 제공된 컴포넌트를 사용할 수 도 있고, 이것을 직접 개발하기 위한 기능도 제공한다. ASP의 치명적인 단점은 특정 플랫폼과 특정 웹 서버에서만 동작한다는 점이다. 오직 Windows플랫폼에서 웹 서버로 IIS(Internet Information Server)만을 사용한다.

12 웹 프로그래밍 언어의 종류 PHP(Personal HomePage tools, Professional Hypertext Preprocessor) PHP는 ASP와는 달리 특정 플랫폼에서만 동작하지 않는다. PHP는 C 언어를 기반으로 만들어진 서버에서 실행되는 스크립트언어로  기존의 C언어에 익숙한 개발자들이 보다 쉽게 접근할 수 있다는 장점 그러나 컴포넌트를 사용할 수 없을 뿐만 아니라, 보안에 취약한 점을 가지고 있어서 PHP기반으로 만들어진 웹사이트들이 해킹의 목표가 되고 있다는 단점

13 웹 프로그래밍 언어의 종류 Servlet 과 JSP(Java Server Page)
JSP와 Servlet은 자바기반으로 만들어진 웹 프로그래밍 언어이다. Servlet이 자바코드에 의존적이라면 JSP는 덜 의존적이라 프로그래밍하기가 더 쉽고 편하다. JSP와 Servlet은 같은 처리구조를 가진다. JSP는 실행시 Servlet으로 변환된다. 단 한번만 서블릿으로 변경되면 코드를 수정하기 전까지 재 변환작업이 일어나지 않기 때문에 수행속도 JSP나 서블릿간에  별차이가 없다.

14 동적 컨텐츠 처리를 위한 기술들 용 어 설 명 CGI -동적 컨텐츠 처리를 위한 가장 전통적인 방법
-CGI용 프로그램은 CGI 규약만 지키면 어떤 언어라도 가능 -프로세스 기반 프로그램으로 시스템의 효율성 측면에서 시스템에    많은 부하 확장 CGI ASP - 비주얼 베이직 언어의 문법들중 일부를 사용 - ActiveX 컴포넌트로 접근가능 - IIS 와 사용(윈도우 운영체제) PHP - C언어와 비슷한 문법을 사용 - 리눅스처럼 소스가 공개되어 있음 - 윈도우, 유닉스 운영체제지원, 아파치, IIS 서버 등 지원 Servlet/JSP - Java 언어를 기반으로 하여 Java 언어의 장점을 수용 - 플랫폼에 대해 독립적임과 동시에 컴파일된 파일을 재컴파일    없이 즉시적인 이식이 가능 - 사용자정의 태그로 기능 확장이 가능

15 웹 프로그래밍과 웹 어플리케이션 (1) 웹 어플리케이션이란 웹을 기반으로 실행되는 프로그램을 말한다.
웹 프로그래밍과 웹 어플리케이션의 관계는 웹 프로그래밍을 통해 웹 어플리케이션을 구현한다고 할 수 있다.

16 웹 프로그래밍과 웹 어플리케이션 (2) 웹 어플리케이션의 구성요소 기능 웹 브라우저 웹 서버 웹 어플리케이션 서버(WAS)
웹에서 클라이언트이며,  사용자의 작업창이라 할 수 있다. 모든 사용자의 요청은 웹 브라우저를 통해서 웹 서버로 전달된다. 웹 서버 웹 브라우저의 요청을 받아들이는 곳으로, 웹 브라우저가 요청한 작업의 결과도 웹 브라우저에게 응답을 담당하는 곳이다. 또한 요청된 페이지의 로직의 수행 및 데이터베이스와의 연동을 위해 웹 어플리케이션 서버에 이들의 처리를 요청하는 작업을 수행한다. 웹 어플리케이션 서버(WAS) 웹 브라우저가 요청한 작업에 필요한 프로그래밍 로직의 처리 및 데이터베이스와의 연동을 처리하는 부분이다. 이때 처리결과를 웹 브라우저로 응답하기 위해서 처리결과를 웹 서버로 보낸다. 데이터베이스 데이터의 저장소로 웹에서 발생한 데이터는 모두 이곳에 저장된다. 게시판의 글들, 회원의 정보 등을 예로 들 수 있다. 사용자의 입장에서 가장 안쪽에 있기 때문에 데이터베이스 서버를 Back-end Server라고도 부른다.

17 CGI방식 과 웹 어플리케이션 서버방식(1) CGI방식
한 요청에 대해 한 프로세스가 생성이 되어서 그 요청을 처리한 뒤 종료한다.

18 CGI방식 과 웹 어플리케이션 서버방식(2) CGI방식
이것은 시스템에 많은 부하를 가져오기 때문에 중대한 단점이 된다.

19 CGI방식 과 웹 어플리케이션 서버방식(3) 웹 어플리케이션 서버 방식
어플리케이션 서버방식은 웹 서버가 직접 어플리케이션 프로그램을 처리하는 것이 아니라, 웹 어플리케이션 서버에게 처리를 넘겨주고 어플리케이션 서버가 어플리케이션 프로그램을 처리한다. 어플리케이션 서버 방식은 여러명의 사용자가 동일한 페이지를 요청하여 같은 어플리케이션 프로그램을 처리할 때 오직 한 개의 프로세스만을 할당하고 사용자의 요청을 쓰레드(Thread) 방식으로 처리한다

20 CGI방식 과 웹 어플리케이션 서버방식(4) 웹 어플리케이션 서버 방식
여러 개의 요청에 오직 1개의 프로세스만을 할당하고 사용자의 요청을 쓰레드 방식으로 처리한다는 것은 메모리를 절약할 수 있다 CGI방식에 비해 동시에 더 많은 사용자에게 서비스를 할 수 있다. 이것은 전체적인 성능의 향상을 가져와서 보다 안정적인 웹 서비스를 제공하는 것이 가능하다.

21 JSP 개요 웹 프로그래밍 언어들 중의 하나 동적인 페이지를 생성하기 위한 서버측 스크립트 언어 자바언어를 기반
객체지향적, 플랫폼 독립적, 네트워크 지향적, 뛰어난 보안성, 멀티스레드 기능, 친근한 코드 정적인 HTML 화일 <HTML> <HEAD><TITLE>Example</TITLE> </HEAD> <BODY> 보통의 HTML 페이지의 형태입니다. <br> 오늘의 날짜와 시간은 : 2007년 9월 2일 09시 입니다. </BODY> </HTML>

22 JSP 개요 서버 스크립트로 구현한 예(JSP)
page import=“java.util.*, java.text.*" %> <HTML> <HEAD><TITLE>Hello World</TITLE></HEAD> <BODY> <% Date data = new Date(); SimpleDateFormat simple Date = new SimpledateFormat(“yyyy-MM-dd”); String strdate = simpleDate.format(date); %> 보통의 HTML 페이지의 형태입니다. <br> 오늘 날짜는 <%=strdate%>입니다. </BODY> </HTML>

23 Servlet의 기본 완전한 자바파일의 형태 JSP와는 달리 자바 코드 안에 HTML 태그들이 포함
JSP (.jsp)  Servlet (.java)  컴파일 (.class) 요청 실행결과 (.html) 응답

24 서블릿으로 구현한 예 public class CMemberTest extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=EUC_KR"); PrintWriter out = response.getWriter(); out.println("<HTML><HEAD><TITLE>로그인</TITLE></HEAD></HTML>"); out.println(“<BODY><H2>Hello World : 헬로월드</H2>"); out.println(“오늘의 날짜와 시간은 : “+new java.util.Date()); out.println("</BODY></HTML>"); }

25 JSP의 특징 많은 사용자 접속도 원활히 처리할 수 있다.
빈즈라고 하는 자바 컴포넌트를 사용할 수 있다. 최초의 서블릿으로 컴파일 된 후에는 메모리에서 처리 많은 사용자 접속도 원활히 처리할 수 있다. JSP나 다른 서블릿 간의 쉬운 데이터 공유 page, request, session, application scope 으로 가능 자바의 모든 기능을 사용할 수 있다.  무한한 확장성 IBM, 오라클, Sun 등에서 강력히 지원 사용자 태그를 만들어 사용할 수 있다. JSTL(JSP Standard Tag Library)과 같은 다양한 기능의 태그 라이브러리 이용 가능 다양한 운영체제와 여러 회사의 JSP 개발/실행 환경을 이용할 수 있다.

26 일반적인 WWW서비스의 동작 과정 http://www.xxx.xxx/index.html 80 포트 <HTML>
<BODY> index.html ④요청 분석 HTML 파일 읽기 DNS 서버 ② IP 주소로 변화 211.xxx.xxx.com ① URL 입력 ⑥ HTML 태그 분석 변환/화면 구성 PC/웹 브라우저 웹 서버 80 포트 ③해당 HTML 페이지 요청 ⑤ HTML 파일(텍스트) 전송

27 JSP의 동작 과정 DB http://www.xxx.xxx:8080/index.jsp 8080 index. jsp 포트
<HTML> <BODY> index. jsp 8080 포트 DNS 서버 PC/웹 브라우저 웹 서버 서블릿 JSP/서블릿 컨테이너 DB ② IP 주소로 변화 211.xxx.xxx.xxx ① URL 입력 ⑨ HTML 태그 분석 변환/화면 구성 ③ JSP 페이지 요청 ⑧ 결과 페이지(HTML) 전송 ④ 요청/분석 넘기기 ⑦ 실행 결과 전송 ⑦데이터 전송 ⑥ 서블릿 적재 ⑤ 컴파일

28 JSP의 동작 원리 JSP 서블릿 컴파일과 처리 과정

29 JSP 학습을 위한 관련 기술 JSP 학습을 위한 필수 기술 서블릿 생명주기 이해 서블릿 기초 프로그래밍
request, response 처리 GET/POST 처리 서블릿 오라클, MySQL 등 원격지 데이터베이스 연결 처리 경험 JDBC 드라이버 세팅 ResultSet, PreparedStatement 데이터 핸들링 JDBC 패키지와 클래스 이해 클래스 DOC을 참조하여 프로그래밍이 가능한 수준 JDK 설치 및 환경설정 자바 언어 기본, 객체지향 개념 상속, 오버로딩, 오버라이딩 인터페이스 구현 java.util, java.io 패키지 쓰레드, 예외 핸들링 자바 비 고 프로그램 경험 필수 기술

30 JSP 학습을 위한 관련 기술 JSP를 배우는데 도움이 되는 기술 유닉스에서 웹 서버 세팅 경험 웹 서버 세팅
CGI, ASP, PHP등 웹 프로그래밍 경험 웹 프로그래밍 테이블 생성과 키에 대한 이해 키 관계 설정 기본 SQL 문의 사용 데이터베이스 연계 프로그래밍 경험 데이터베이스 필요한 기능을 함수로 구현 가능한 수준. 메서드 만들기 FORM 연계 이벤트 처리 자바스크립트 수작업으로 코딩이 가능한 수준. CSS, 레이어 이해 HTML 기초 태그 사용 FORM 관련 태그 사용 HTML 최소 요구사항 프로그램 경험 관련 기술


Download ppt "1. JSP(Java Server Pages) 소개"

Similar presentations


Ads by Google