본문 바로가기

Servlet

BeerAdvisor DD(web.xml) 설정 web.xml에서 Mapping 설정 Ch3 Beer com.example.web.BeerSelect Ch3 Beer /SelectBeer.do Mapping 설정 순서 사용자는 form 화면에서 색깔을 선택하고, 제출(Summit) 버튼을 선택하면 Browser는 /Beer-vl/SelectBeer.do 와 같은 URL을 생성한다. Container는 DD의 항목에서 /SelectBeer.do라는 값을 가진 을 찾는다. 여기서 /는 Context Root를 의미하며, SelectBeer.do는 자원의 논리적인 이름이다. Container는 DD에서 과 쌍을 이루는 의 값 Ch3 Beer를 기억해두고 Container는 내부 Servlet명과 여기에 일치하는 항목을 Mapping 한다. Container.. 더보기
BeerAdvisor 제일 첫 화면 HTML 첫 화면의 form.html Beer Selection Page Select beer characteristics Color: light amber brown dark - action에서 요청하는 SelectBeer.do 는 실제 파일명이 아닌 논리적인 이름이다. - 실제로는 배포 서술자에 Container가 사용하는 실제 Servlet Class File에 Mapping 되어 있다. - .do 확장자는 논리적인 이름의 일부며 실제 File의 확장자나 Type이 아니다. 더보기
BeerAdvisor Application Architecture Chapter3의 BeerAdvisor의 MVC Architecture에 대한 설명 1 – Client가 form.html을 요청한다. 2 – 요청을 받은 Container가 form.html을 File System에서 읽어 온다. 3 – form.html을 Browser로 넘겨 주며 화면을 보고 사용자가 맥주 색깔과 관련된 질문에 자신의 취향을 입력한다. 4 – 사용자가 선택한 정도를 Container로 보낸다. 5 – Container는 URL을 분석하여 담당 Servlet을 찾아 요청을 넘긴다. 6 – Servlet은 BeerExpert Class를 호출한다. 7 – BeerExpert Class는 맥주에 대한 조언을 Servlet에 넘겨주며 Servlet는 이 정보를 Request 객체에 저장한다.. 더보기
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.. 더보기
javax.servlet.servletrequest 클라이언트의 Request에 대한 정보를 서블릿에 제공하는 오브젝트를 정의한다. getAsyncContext() getAttribute(java.lang.String name) 지정된 속성의 값을 Object 로서 얻는다. 정된 이름의 속성이 존재하지 않는 경우는,null을 얻는다. getAttributeNames() 이 Request로 이용할 수 있는 속성의 이름이 포함된 목록을 얻는다. 돌려줍니다. 이용할 수 있는 속성이 Request에 없는 경우는 빈 내용을 얻는다. getCharacterEncoding 이 Request의 본체로 사용되는 문자 인코딩의 이름을 얻는다. Request가 문자 인코딩을 지정하고 있지 않는 경우, 이 메소드는 null을 얻는다. getContentLength() Requ.. 더보기