SlideShare a Scribd company logo
Servlets & JSP
2장
What is Container
A. 요청을 받아오면 컨테이너에서 처리한다.
톰캣?
What is Tomcat
Response, Request 객체 생성
클라이언트의 요청에 대한 서블릿 스레드 생성
서블릿 스레드에 아까 만든 객체 넘김
service()가 작업한 response를 HTTP로 클라이언트에게 보냄
서블릿 service() 메소드 호출
어떤 스레드인지는 DD를 이용하여 알아냄
service()
• 요청에 따라 doGet() 혹은 doPost() 메소드를 호출
• doGet()/ doPost() 는 동적인 페이지를 생성
• doGet(), doPost()는 동적인 페이지를 어떻게 생성할까?
얘가 서블릿.
public class DatingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletReponse response)
throws IOException {
String d = Integer.toSting((int) ((Math.random()*6)+1));
printWriter out = response.getWriter();
out.println(“<html> <body>”+ …); }
}
doGet이 요기있넹
얘가 서블릿.
public class DatingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletReponse response)
throws IOException {
String d = Integer.toSting((int) ((Math.random()*6)+1));
printWriter out = response.getWriter();
out.println(“<html> <body>”+ …); }
}
아까 톰캣이 만든 객체
얘가 서블릿
public class DatingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletReponse response)
throws IOException {
String d = Integer.toSting((int) ((Math.random()*6)+1));
printWriter out = response.getWriter();
out.println(“<html> <body>”+ …); }
}
똑똑한 놈이죠. 비즈니스 로직
얘가 서블릿
public class DatingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletReponse response)
throws IOException {
String d = Integer.toSting((int) ((Math.random()*6)+1));
printWriter out = response.getWriter();
out.println(“<html> <body>”+ …); }
}
서기입니다. 프리젠테이션 로직
하지만 좋은 코드가 아닙니다.
MVC
• Model: 똑똑한 비즈니스 로직. 자바코드입니다.
• View: 글 잘쓰는 프레젠테이션 로직. JSP입니다.
• Control: 관리직이죠. 일을 받아와서 M과 V에게 줍니다.
M의 일은 M에게 V의 일은 V에게
얘가 서블릿
public class DatingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletReponse response)
throws IOException {
String d = Integer.toSting((int) ((Math.random()*6)+1));
printWriter out = response.getWriter();
out.println(“<html> <body>”+ …); }
}
JSP(V)
자바코드(M)
서블릿(C)
얘가 MVC 디자인 패턴
public class DatingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletReponse response)
throws IOException {
자바 클래스가 할 겁니다.
}
JSP가 할 겁니다.
서블릿(C)
What is DD
• 다른 URL로 들어왔는데 같은 서블릿이 필요하다면?
• 클라이언트가 서버에 직접 접근해온다면?
그래서 DD를 씁니다.
얘가 DD
<servlet>
<servlet-name> Internal name1</servlet-name>
<servlet-class>foo.servlet1<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Internal name 1</servlet-name>
<url-patten>/Public1</url-patten>
</servlet-mapping>
이런 애들이 많이 있어요.
얘가 DD
<servlet>
<servlet-name> Internal name1</servlet-name>
<servlet-class>foo.servlet1<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Internal name 1</servlet-name>
<url-patten>/Public1</url-patten>
</servlet-mapping>
이거는 클라이언트가 알아요
이거 주면 DD가 Internal name1을 알려줘여
얘가 DD
<servlet>
<servlet-name> Internal name1</servlet-name>
<servlet-class>foo.servlet1<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Internal name 1</servlet-name>
<url-patten>/Public1</url-patten>
</servlet-mapping>
아까 URL로 알아왔죠?
이걸로 서블릿 이름 알 수 있어여
근데 아직 잘 모르겠죠? 괜찮아요 다음에도 다시 배울거래요

More Related Content

What's hot

[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc
구 봉
 
역시 Redux
역시 Redux역시 Redux
역시 Redux
Leonardo YongUk Kim
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
DK Lee
 
Html5 web workers
Html5 web workersHtml5 web workers
Html5 web workers
Woo Jin Kim
 
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
Gyutae Jo
 
HTML5의 web worker
HTML5의 web workerHTML5의 web worker
HTML5의 web worker
Yongho Ji
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
Taegon Kim
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
J.H Ahn
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
ksain
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design pattern
Sukjin Yun
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
 
04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재
Hankyo
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 Preview
Juntai Park
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
DK Lee
 
Why javaScript?
Why javaScript?Why javaScript?
Why javaScript?
Kim Hunmin
 
Web Components 101 polymer & brick
Web Components 101 polymer & brickWeb Components 101 polymer & brick
Web Components 101 polymer & brickyongwoo Jeon
 
JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿
Myungjin Lee
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular js
Jeado Ko
 

What's hot (20)

[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc[웹기반시스템 3조] mvc
[웹기반시스템 3조] mvc
 
Web workers
Web workersWeb workers
Web workers
 
역시 Redux
역시 Redux역시 Redux
역시 Redux
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
 
Presentation1
Presentation1Presentation1
Presentation1
 
Html5 web workers
Html5 web workersHtml5 web workers
Html5 web workers
 
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
 
HTML5의 web worker
HTML5의 web workerHTML5의 web worker
HTML5의 web worker
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design pattern
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 
04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 Preview
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
 
Why javaScript?
Why javaScript?Why javaScript?
Why javaScript?
 
Web Components 101 polymer & brick
Web Components 101 polymer & brickWeb Components 101 polymer & brick
Web Components 101 polymer & brick
 
JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular js
 

Viewers also liked

Hellotutorial
HellotutorialHellotutorial
Hellotutorial
hellotutorial
 
Playnode 2016 조승연
Playnode 2016 조승연Playnode 2016 조승연
Playnode 2016 조승연
Kivol
 
1주차 자기개발 항목(jsp 컴파일)
1주차 자기개발  항목(jsp 컴파일)1주차 자기개발  항목(jsp 컴파일)
1주차 자기개발 항목(jsp 컴파일)
brain816
 
크리테오 설명서
크리테오 설명서크리테오 설명서
크리테오 설명서
TNM Media
 
로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?
Heemin Kim
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
Chang W. Doh
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
J B
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
JungHyuk Kwon
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
Ho Gyu Lee
 
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?Toby Yun
 
개발자들 오리엔테이션
개발자들 오리엔테이션개발자들 오리엔테이션
개발자들 오리엔테이션
Park JoongSoo
 
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?Nts Nuli
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
Sunil OS
 
톰캣 #01-소개
톰캣 #01-소개톰캣 #01-소개
톰캣 #01-소개
GyuSeok Lee
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기
Park JoongSoo
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
NAVER D2
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2
EungJun Yi
 
네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐
NAVER D2
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101
Chang W. Doh
 

Viewers also liked (20)

Hellotutorial
HellotutorialHellotutorial
Hellotutorial
 
Playnode 2016 조승연
Playnode 2016 조승연Playnode 2016 조승연
Playnode 2016 조승연
 
1주차 자기개발 항목(jsp 컴파일)
1주차 자기개발  항목(jsp 컴파일)1주차 자기개발  항목(jsp 컴파일)
1주차 자기개발 항목(jsp 컴파일)
 
크리테오 설명서
크리테오 설명서크리테오 설명서
크리테오 설명서
 
로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
 
개발자들 오리엔테이션
개발자들 오리엔테이션개발자들 오리엔테이션
개발자들 오리엔테이션
 
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
톰캣 #01-소개
톰캣 #01-소개톰캣 #01-소개
톰캣 #01-소개
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2
 
네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101
 

Similar to HeadFisrt Servlet&JSP Chapter 2

안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
병한 유
 
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GDG Korea
 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Hyuncheol Jeon
 
[스프링 스터디 2일차] 서비스 추상화
[스프링 스터디 2일차] 서비스 추상화[스프링 스터디 2일차] 서비스 추상화
[스프링 스터디 2일차] 서비스 추상화
AnselmKim
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
NAVER D2
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
명신 김
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
현철 조
 
웹(자바기준)의 전반적인 이해
웹(자바기준)의 전반적인 이해웹(자바기준)의 전반적인 이해
웹(자바기준)의 전반적인 이해
JAEHYUN LIM
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버Sukjin Yun
 
Domain Specific Languages With Groovy
Domain Specific Languages With GroovyDomain Specific Languages With Groovy
Domain Specific Languages With Groovy
Tommy C. Kang
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development
지수 윤
 
.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기
Seong Won Mun
 
[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초
양재동 코드랩
 
Okjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 TestOkjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 Test
beom kyun choi
 
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open APIDo IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
Hyunghun Cho
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
HyungKuIm
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
성일 한
 
HeadFisrt Servlet&JSP Chapter 4
HeadFisrt Servlet&JSP Chapter 4HeadFisrt Servlet&JSP Chapter 4
HeadFisrt Servlet&JSP Chapter 4
J B
 
Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822병헌 정
 
Dependency Injection 소개
Dependency Injection 소개Dependency Injection 소개
Dependency Injection 소개
beom kyun choi
 

Similar to HeadFisrt Servlet&JSP Chapter 2 (20)

안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
 
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
 
[스프링 스터디 2일차] 서비스 추상화
[스프링 스터디 2일차] 서비스 추상화[스프링 스터디 2일차] 서비스 추상화
[스프링 스터디 2일차] 서비스 추상화
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
웹(자바기준)의 전반적인 이해
웹(자바기준)의 전반적인 이해웹(자바기준)의 전반적인 이해
웹(자바기준)의 전반적인 이해
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버
 
Domain Specific Languages With Groovy
Domain Specific Languages With GroovyDomain Specific Languages With Groovy
Domain Specific Languages With Groovy
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development
 
.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기
 
[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초
 
Okjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 TestOkjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 Test
 
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open APIDo IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
 
HeadFisrt Servlet&JSP Chapter 4
HeadFisrt Servlet&JSP Chapter 4HeadFisrt Servlet&JSP Chapter 4
HeadFisrt Servlet&JSP Chapter 4
 
Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822
 
Dependency Injection 소개
Dependency Injection 소개Dependency Injection 소개
Dependency Injection 소개
 

HeadFisrt Servlet&JSP Chapter 2

  • 2. What is Container A. 요청을 받아오면 컨테이너에서 처리한다. 톰캣?
  • 3. What is Tomcat Response, Request 객체 생성 클라이언트의 요청에 대한 서블릿 스레드 생성 서블릿 스레드에 아까 만든 객체 넘김 service()가 작업한 response를 HTTP로 클라이언트에게 보냄 서블릿 service() 메소드 호출 어떤 스레드인지는 DD를 이용하여 알아냄
  • 4. service() • 요청에 따라 doGet() 혹은 doPost() 메소드를 호출 • doGet()/ doPost() 는 동적인 페이지를 생성 • doGet(), doPost()는 동적인 페이지를 어떻게 생성할까?
  • 5. 얘가 서블릿. public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException { String d = Integer.toSting((int) ((Math.random()*6)+1)); printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); } } doGet이 요기있넹
  • 6. 얘가 서블릿. public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException { String d = Integer.toSting((int) ((Math.random()*6)+1)); printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); } } 아까 톰캣이 만든 객체
  • 7. 얘가 서블릿 public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException { String d = Integer.toSting((int) ((Math.random()*6)+1)); printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); } } 똑똑한 놈이죠. 비즈니스 로직
  • 8. 얘가 서블릿 public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException { String d = Integer.toSting((int) ((Math.random()*6)+1)); printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); } } 서기입니다. 프리젠테이션 로직
  • 10. MVC • Model: 똑똑한 비즈니스 로직. 자바코드입니다. • View: 글 잘쓰는 프레젠테이션 로직. JSP입니다. • Control: 관리직이죠. 일을 받아와서 M과 V에게 줍니다. M의 일은 M에게 V의 일은 V에게
  • 11. 얘가 서블릿 public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException { String d = Integer.toSting((int) ((Math.random()*6)+1)); printWriter out = response.getWriter(); out.println(“<html> <body>”+ …); } } JSP(V) 자바코드(M) 서블릿(C)
  • 12. 얘가 MVC 디자인 패턴 public class DatingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletReponse response) throws IOException { 자바 클래스가 할 겁니다. } JSP가 할 겁니다. 서블릿(C)
  • 13. What is DD • 다른 URL로 들어왔는데 같은 서블릿이 필요하다면? • 클라이언트가 서버에 직접 접근해온다면? 그래서 DD를 씁니다.
  • 14. 얘가 DD <servlet> <servlet-name> Internal name1</servlet-name> <servlet-class>foo.servlet1<servlet-class> </servlet> <servlet-mapping> <servlet-name>Internal name 1</servlet-name> <url-patten>/Public1</url-patten> </servlet-mapping> 이런 애들이 많이 있어요.
  • 15. 얘가 DD <servlet> <servlet-name> Internal name1</servlet-name> <servlet-class>foo.servlet1<servlet-class> </servlet> <servlet-mapping> <servlet-name>Internal name 1</servlet-name> <url-patten>/Public1</url-patten> </servlet-mapping> 이거는 클라이언트가 알아요 이거 주면 DD가 Internal name1을 알려줘여
  • 16. 얘가 DD <servlet> <servlet-name> Internal name1</servlet-name> <servlet-class>foo.servlet1<servlet-class> </servlet> <servlet-mapping> <servlet-name>Internal name 1</servlet-name> <url-patten>/Public1</url-patten> </servlet-mapping> 아까 URL로 알아왔죠? 이걸로 서블릿 이름 알 수 있어여 근데 아직 잘 모르겠죠? 괜찮아요 다음에도 다시 배울거래요