본문 바로가기

2011/07/26

J2EE(Java 2 Enterprise Edition)에 들어 있는 것 J2EE는 Spec들에 대한 Spec, Super Spec이라고 할 수 있다. J2EE는 Servlet Spec 2.4와 JSP 2.0 Spec과 같은 Spec들을 포함하고 있습니다. Servlet Spec과 JSP Spec은 둘 다 Web Container를 위한 것이다. J2EE 1.4 Spec에는 EJB 2.1(Enterprise JavaBean) Spec도 들어 있으며, 이 Spec은 EJB Container에 사용한다. Web Container는 Web Component(Servlet, JSP)를 위한 것이고, EJB Container는 Business Component용이다. J2EE에 완벽하게 부합되는 J2EE Application Server는 Web Container와 EJB Contai.. 더보기
Servlet, JSP 환경에서 MVC Controller(컨트롤러) Request 객체에서 사용자가 입력한 정보를 뽑아내어, Model에 대하여 어떤 작업을 해야 하는지 알아낸다. Model 정보를 수정한다든지, View(JSP)에게 넘겨줄 새로운 Model을 만든다든지 등과 같은 작업. View(뷰) Presentaion에 대한 책임을 진다. View는 Controller로부터 Model 정보를 읽어온다. (직, 간접적인 방법 둘 다 가능하며, View가 찾을 수 있는 곳에 Controller가 갖다 두는 방식을 많이 사용한다.) View는 사용자가 입력한 정보를 Controller에게 넘겨 주기도 해야 한다. Model(모델) Business Logic이 들어간다. Model 정보(state)를 읽어오거나(getter) 수정하는(sett.. 더보기
배포 서술자(DD, Deployment Descriptor) 배포 서술자(DD, Deployment Descriptor) 배포 서술자는 Web에서 요청 받은 해당 Servlet의 URL주소를 통해 Servlet 이름을 확인, 해당 Servlet Class를 호출하기 위한 Mapping 정보를 기록하는 역할을 한다. Mapiing 정보 기록 이외에도 할 수 있는 일 - 보안 역할 설정, 오류 페이지 설정, 항목 library, 초기화 구성 및 관련 정보 구성 등등 Server가 J2EE의 모든 규격을 구현한 Server라면 EJB 선언 및 접근에 관련된 내용도 설정 할 수 있다. DD의 이점 이미 Test된 Source Code에 대한 수정을 최소화 한다. Source Code가 없더라도, Application을 목적에 맞게 수정할 수 있다. Code 변경이나 Co.. 더보기
배포 서술자에서 URL Mapping을 위한 두 가지 항목 내부에서만 사용하는 이름과 완전한(Package 이름까지 포함하여) Class명과 서로 Mapping한다. 내부에서 사용하는 이름과 URL 이름을 서로 Mapping한다. C2-82 더보기
하나의 Servlet은 세 개의 이름을 가진다. Client가 아는 URL 이름 Client는 HTML 안에 존재하는 Servlet 이름만 알고 있으면 된다. Server 상의 실제 어느 Directory에 어떤 Filename으로 존재하는지는 관심 없다. URL 이름은 Client를 위한 것 이다. 배포자가 만든 내부적인 이름 배포자는 실제 Application 운영을 위하여 배포명이란 것을 만들어 개발자에게 알려준다. 배포명도 URL 이름과 같이 가공의 이름이라고 말할 수 있다. 이 이름은 URL 이름과 같을 필요가 없다. 실제 Servlet File 위치 이름과 일치하지 않아도 된다. 실제 파일명 개발자가 만든 Servlet Class 안에는 Class명과 Package명이 들어 있다. Servlet Class 파일도 File System 상의 .. 더보기
Container(컨테이너) Container Servlet을 실행하고 관리하는 역할을 한다. Web Server는 사용자로부터 Servlet을 요청 받으면 바로 호출 되는 것이 아니라, Container에게 요청이 넘어간다. Container는 요청을 넘겨 받아 HTTP Request와 HTTP Response 객체를 만들어, 이를 인자로 Servlet doPost()나 doGet() method 중 하나를 호출한다 C2-73 Container가 주는 혜택 통신(Communication) 지원 Container는 Servlet과 Web Server가 서로 통신할 수 있는 손쉬운 방법을 제공한다. Server와 대화하기 위하여 개발자가 직접 해야 하는 복잡한 일련의 일을 할 필요가 없다. Container는 어떻게 Web Serve.. 더보기
CGI 프로그램 웹 서버 혼자서 할 수 없는 일들 도와주는 애플리케이션을 CGI 프로그램이라고 부른다. 대부분의 CGI 프로그램은 펄(Peal) 스크립트로 작성한다. 펄 스크립트 이외에도 C, 파이썬(Python), PHP 같은 언어도 있다. CGI의 약자는 Common Gateway Interface이다. CGI 프로그램을 가지고 현재 시간(서버 시간)을 클라이언트에게 제공하는 순서 사용자는 정적인 페이지가 아닌 CGI 프로그램에 대한 URL을 클릭한다. 웹 서버는 들어온 요청이 CGI 프로그램을 호출하는 것임을 확인 후, 해당 프로그램을 실행하고 GET 또는 POST로 넘어온 파라미터를 넘겨준다. CGI 프로그램은 현재 시간이 들어간 페이지를 만들어 서버에 HTML 형식으로 넘겨주며 이 시점에선 웹 서버가 CGI 프.. 더보기
웹 서버 혼자서 할 수 없는 두 가지 1. 동적인 컨텐츠 생성 웹 서버는 정적인 페이지만 제공한다. 애플리케이션 웹 서버와 협력해서 동적인 페이지를 제공할 수 있다. 2. 서버 상에 데이터 저장하기 웹 서버는 파라미터를 애플리케이션에 전달하여 저장한다. C1-60 더보기
URL(Uniform Resource Locators) 웹 상에 있는 모든 자원 자신만의 고유한 이름을 가지는데 이 고유한 이름을 부여하는 방식 C1-54 더보기
MIME 타입 HTTP 응답의 몸체의 대한 컨텐츠 타입을 말한다. C1-51 더보기
POST 메소드 용량에 제한이 있긴 하지만 GET 방식에 비해 매우 용량이 크다. URL이 아닌 HTTP의 헤더 정보다음에 오는 몸체에 데이터를 넣어서 전송한다. 즐겨찾기 추가를 하더라도 값이 같이 저장되지는 않는다. 메소드 종류, 웹 서버 상 자원에 대한 경로, 브라우저가 요청한 프로토콜 버전, 요청 헤더, 메시지 몸체(파라미터) 순으로 전달한다. 더보기
GET 메소드 GET으로 보낼 수 있는 글자 수는 제한이 있다. GET의 데이터 전송방식은 브라우저 주소란에 기입하는 URL 뒤에 붙이는 식 화면에 보이게 된다. 즐겨찾기 추가가 가능하다. 메소드 종류, 웹 서버 상 자원에 대한 경로, 파라미터, 브라우저가 요청한 프로토콜 버전, 요청 헤더 순으로 전달한다. C1-48 더보기
HTTP 프로토콜 HTTP는 TCP/IP 위에서 돌아간다. TCP는 한쪽 노드에서 다른 쪽 노드로 파일을 보내는 것. IP는 한 호스트에서 목적지 호스트까지 패킷을 옮기고 이동하기 위한 베이스 프로토콜 HTTP는 이와 별개로, 웹에서만 사용하는 프로토콜 HTTPS 라는 암호화 된 프로토콜도 존재함 C1-44 더보기
클라이언트와 서버는 HTML과 HTTP를 어떻게 다룰지 안다. HTML(Hyper Text Markup Language) 클라이언트로 요청을 받고 나면, 서버는 브라우저에게 컨텐츠 타입이 무엇인지 알려준다. 브라우저는 이 내용에 기초하여 이를 어떻게 화면에 출력할지 준비힌다. 서버는 HTML을 전달한다. 모든 웹 브라우저는 HTML을 이해한다. 구형 웹 브라우저는 최신 문법의 HTML을 못 알아 먹기도 한다. HTML 4.01 레퍼런스 : http://www.w3schools.com/tags/default.asp HTTP(HyperText Transfer Protocol) 웹 상에서 일어나는 클라이언트와 서버간의 대화는 HTTP라는 프로토콜로 이루어 진다. HTTP 프로토콜은 요청과 응답으로 이루어진 아주 단순한 구조이다. 클라이언트가 HTTP로 요청을 보내면, 서.. 더보기
클라이언트의 역할 클라이언트란 일반적으로 웹 브라우저 응용프로그램을 뜻한다. 브라우저의 종류에는 넷스케이프, 파이어폭스, 사파리, 익스플로러, 오페라, 크롬 등등 여러 웹 브라우져가 있다. 브라우저의 주된 역할은 HTML 코드를 읽어서(파싱) 화면에 보이게 한다. C1-39 더보기
웹 서버의 역할 웹 서버는 클라이언트로 요청 받아 요청한 것을 넘겨주는 일을 한다. 요청한 것이 서버에 없거나 있다 해도 주소가 틀린 곳에 있어 서버가 찾지 못한다면 오류 메시지를 표시한다. C1-38 더보기
웹 애플리케이션 웹 애플리케이션은 브라우저만 있다면 누구든 실행할 수 있다. GUI 애플리케이션은 환경의 따른(OS 등등) 배포의 문제가 있다. 좀 더 강력한 웹 애플리케이션을 위하여 자바를 이용한 서블릿이나 JSP를 사용한다. C1-35 더보기