SlideShare une entreprise Scribd logo
1  sur  19
Servlets & JSP
1장
What is Server
A. 클라이언트는 요청하고, 서버는 제공한다.
What is Client
사용자가 웹 페이지의 링크를 클릭
요청으로 만들어서 서버로 넘
김
서버는 데이터를 찾은 후 응답으로 만들어서 넘김
브라우저는 넘겨받은 값을 사용자가 확인할 수 있게 화면에 출력함
HTML & HTTP
• HTML : 브라우저가 화면에 어떻게 컨텐츠를 출력할
지 알려주는 프로토콜(hyper text markup language)
• HTTP : 클라이언트와 서버가 대화하는 언어. 웹상의
요청은 거의 대 부분 HTTP 프로토콜에 기초하여 이
루어짐(hypertext transfer protocol)
HTML…?
• 알고 있는 거니까 넘어갑시다. 주석, <a>, <br> 등의
태그들이 존재합니다.
HTTP
• 요청/응답의 끊임없는 주고 받음.
• HTTP 요청/응답 안에 HTML이 포함되어 있음.
GET/POST
• 가장 많이 사용되는 두 가지 요청
• GET : 서버에게 클릭한 페이지를 달라고 요청하는 것
- 단순한 요청에 사용됨
• POST : 사용자가 입력한 값을 함께 보내는 것 - 사용
자가 입력한 값을 함께 넘겨주어야 할 때 사용
GET
• GET 으로도 데이터를 보낼 수 있으나, 폼에 다 보이
고 글자 수가 제한이 있음.
POST
• 복잡한 요청을 넘기기 위한 프로토콜
Response From Server
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Oct 2014 07:48:09 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Content-Encoding: gzip
URI
• 서버에 자원을 요청하는 주소. 웹서버에 이 주소로 요
청하면 해당하는 위치에 있는 리소스가 날아오게 됨
동적 페이지 vs 정적 페
이지
• 위와 같은 세팅에서는 *이미 존재하는* 리소스만 넘
겨줄 수 있음.
• Q. 동적으로 컨텐츠를 만들어서 전송하는 것은?(현
재 시간, 주사위의 눈의 수…)
• 서버 상에 데이터를 저장하고 싶을 때는?
CGI
매핑되어 있는 주소로 요청이 들어옴
요청을 확인한 서버가 도우미 어플리케이션 호출
CGI(도우미 어플리케이션)은 페이지를 만들어서 서버에 넘겨줌
서버는 클라이언트에게 응답함
톰캣 설치
• 톰캣을 설치해보자
• http://blog.naver.com/piro37/220052701416
• 톰켓은 JSP/Servlet 컨테이너 중 하나로 사용자에게
jsp 요청을 받으면 서블릿으로 이를 변환해서 실행.
• 톰켓 자체에 간단한 웹서버가 내장되어 있음.
서블릿 실습
• http://dkatlf900.tistory.com/68
서블릿 이론
• CGI는 동적인 웹 어플리케이션 기술로 서블릿보다
먼저 만들어짐
• 자바로 작성된 코드. JVM 위에서 돌아가기 때문에 하
드웨어랑 소프트웨어로부터 자유로움
• 클라이언트에서 받은 요청을 웹 컨테이너(톰켓)으로
보내게 됨.
처리과정
웹 브라우저에서 서버로 helloServlet을 요청
요청받은 웹서버는 서블릿 컨테이너에게 HelloServlet 처리 요청
서블릿 컨테이너는 HelloServlet을 찾고 실행
HelloServlet은 처리결과를 웹서버로 주고, 웹서버는 이걸로 응답
DD
• 요청이 들어온 서블릿을 매핑해주는 역할
• 웹 어플리케이션에는 하나의 DD만 존재함
<servlet>
<servlet-name>Insert</servlet-name>
<servlet-class>com.namex.shortener.Insert</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Insert</servlet-name>
<url-pattern>/insert</url-pattern>
</servlet-mapping>
DD
• <servlet-name> : 서블릿 태그를 servlet-mapping과
연관시킨다.
• <servlet-class> : 이 안에는 자바 클래스 이름이 들어
감
• <url-patten> : 이 주소로 요청이 들어오면 자바 클래
스를 호출하게 됨.

Contenu connexe

Tendances

Lighting talk 2 9
Lighting talk 2 9Lighting talk 2 9
Lighting talk 2 9Kahee Yu
 
nodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOnodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOMungyu Choi
 
Meteor를 통해서 개발하는 웹어플리케이션 서비스
Meteor를 통해서 개발하는 웹어플리케이션 서비스Meteor를 통해서 개발하는 웹어플리케이션 서비스
Meteor를 통해서 개발하는 웹어플리케이션 서비스WebFrameworks
 
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)Mungyu Choi
 
Nginx Architecture
Nginx ArchitectureNginx Architecture
Nginx Architecture건 손
 
Web Socket
Web SocketWeb Socket
Web Socketymtech
 
Tech talk 2 - 이윤구
Tech talk 2 - 이윤구Tech talk 2 - 이윤구
Tech talk 2 - 이윤구대영 최
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)jeongseokoh
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림우림 류
 
Web and server
Web and serverWeb and server
Web and server민정 김
 
킴스큐Rb 설치
킴스큐Rb 설치킴스큐Rb 설치
킴스큐Rb 설치Gitaek kwon
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server정현 윤
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발WebFrameworks
 
워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)Donghwan Oh
 
How to make web based collaborate code editor
How to make web based collaborate code editorHow to make web based collaborate code editor
How to make web based collaborate code editorYoung-Hyuk Yoo
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategyDaeMyung Kang
 
Asynchronous Python and Database
Asynchronous Python and DatabaseAsynchronous Python and Database
Asynchronous Python and DatabaseDaehee Han
 

Tendances (20)

Lighting talk 2 9
Lighting talk 2 9Lighting talk 2 9
Lighting talk 2 9
 
nodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOnodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IO
 
Meteor를 통해서 개발하는 웹어플리케이션 서비스
Meteor를 통해서 개발하는 웹어플리케이션 서비스Meteor를 통해서 개발하는 웹어플리케이션 서비스
Meteor를 통해서 개발하는 웹어플리케이션 서비스
 
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
 
Nginx Architecture
Nginx ArchitectureNginx Architecture
Nginx Architecture
 
Web Socket
Web SocketWeb Socket
Web Socket
 
Tech talk 2 - 이윤구
Tech talk 2 - 이윤구Tech talk 2 - 이윤구
Tech talk 2 - 이윤구
 
Content negotiation
Content negotiationContent negotiation
Content negotiation
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
 
Web and server
Web and serverWeb and server
Web and server
 
킴스큐Rb 설치
킴스큐Rb 설치킴스큐Rb 설치
킴스큐Rb 설치
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발
 
워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)
 
실시간통신
실시간통신실시간통신
실시간통신
 
How to make web based collaborate code editor
How to make web based collaborate code editorHow to make web based collaborate code editor
How to make web based collaborate code editor
 
가상메모리
가상메모리가상메모리
가상메모리
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategy
 
Asynchronous Python and Database
Asynchronous Python and DatabaseAsynchronous Python and Database
Asynchronous Python and Database
 

En vedette

HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1J B
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기Park JoongSoo
 
HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5J B
 
HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6J B
 
잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁Kenu, GwangNam Heo
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표Kyoung Up Jung
 
우리는 꿈을 꾸는 개발자들.
우리는 꿈을 꾸는 개발자들.우리는 꿈을 꾸는 개발자들.
우리는 꿈을 꾸는 개발자들.Lee WonJae
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3J B
 
메이븐파헤치기(김우용)
메이븐파헤치기(김우용)메이븐파헤치기(김우용)
메이븐파헤치기(김우용)우용 김
 
진민완 포트폴리오
진민완 포트폴리오진민완 포트폴리오
진민완 포트폴리오민완 진
 
Rainbow Project Web App
Rainbow Project Web AppRainbow Project Web App
Rainbow Project Web Appbingoori
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)DK Lee
 
웹 개발 스터디 01 - HTML, CSS
웹 개발 스터디 01 - HTML, CSS웹 개발 스터디 01 - HTML, CSS
웹 개발 스터디 01 - HTML, CSSYu Yongwoo
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)Yu Yongwoo
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 

En vedette (20)

HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기
 
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
 
HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5
 
HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6
 
HTTP web server 구현
HTTP web server 구현HTTP web server 구현
HTTP web server 구현
 
잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁
 
Eclipse web
Eclipse webEclipse web
Eclipse web
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표
 
우리는 꿈을 꾸는 개발자들.
우리는 꿈을 꾸는 개발자들.우리는 꿈을 꾸는 개발자들.
우리는 꿈을 꾸는 개발자들.
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3
 
메이븐파헤치기(김우용)
메이븐파헤치기(김우용)메이븐파헤치기(김우용)
메이븐파헤치기(김우용)
 
진민완 포트폴리오
진민완 포트폴리오진민완 포트폴리오
진민완 포트폴리오
 
Rainbow Project Web App
Rainbow Project Web AppRainbow Project Web App
Rainbow Project Web App
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
 
Maven의 이해
Maven의 이해Maven의 이해
Maven의 이해
 
웹 개발 스터디 01 - HTML, CSS
웹 개발 스터디 01 - HTML, CSS웹 개발 스터디 01 - HTML, CSS
웹 개발 스터디 01 - HTML, CSS
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)
 
자바모델 클래스에 날개를달자_롬복(Lombok)
자바모델 클래스에 날개를달자_롬복(Lombok)자바모델 클래스에 날개를달자_롬복(Lombok)
자바모델 클래스에 날개를달자_롬복(Lombok)
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 

Similaire à Servlet&jsp 1장

DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요dgmit2009
 
웹 서버 실행 환경
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경성균 전
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)DK Lee
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍Myungjin Lee
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초JinuNoh
 
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)진태 이
 
Web hacking introduction
Web hacking introductionWeb hacking introduction
Web hacking introductionJinkyoung Kim
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장Hyejin Oh
 
브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?Minseok Jang
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVAcooddy
 
Http 헤더
Http 헤더Http 헤더
Http 헤더kidoki
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기SangJin Kang
 
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발현승 배
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTPNAVER D2
 

Similaire à Servlet&jsp 1장 (20)

DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
웹 서버 실행 환경
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
Servlet3
Servlet3Servlet3
Servlet3
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍
 
CDN overview
CDN overviewCDN overview
CDN overview
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
Web server
Web serverWeb server
Web server
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
 
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
 
Web hacking introduction
Web hacking introductionWeb hacking introduction
Web hacking introduction
 
3장
3장3장
3장
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장
 
브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVA
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
 

Servlet&jsp 1장

  • 2. What is Server A. 클라이언트는 요청하고, 서버는 제공한다.
  • 3. What is Client 사용자가 웹 페이지의 링크를 클릭 요청으로 만들어서 서버로 넘 김 서버는 데이터를 찾은 후 응답으로 만들어서 넘김 브라우저는 넘겨받은 값을 사용자가 확인할 수 있게 화면에 출력함
  • 4. HTML & HTTP • HTML : 브라우저가 화면에 어떻게 컨텐츠를 출력할 지 알려주는 프로토콜(hyper text markup language) • HTTP : 클라이언트와 서버가 대화하는 언어. 웹상의 요청은 거의 대 부분 HTTP 프로토콜에 기초하여 이 루어짐(hypertext transfer protocol)
  • 5. HTML…? • 알고 있는 거니까 넘어갑시다. 주석, <a>, <br> 등의 태그들이 존재합니다.
  • 6. HTTP • 요청/응답의 끊임없는 주고 받음. • HTTP 요청/응답 안에 HTML이 포함되어 있음.
  • 7. GET/POST • 가장 많이 사용되는 두 가지 요청 • GET : 서버에게 클릭한 페이지를 달라고 요청하는 것 - 단순한 요청에 사용됨 • POST : 사용자가 입력한 값을 함께 보내는 것 - 사용 자가 입력한 값을 함께 넘겨주어야 할 때 사용
  • 8. GET • GET 으로도 데이터를 보낼 수 있으나, 폼에 다 보이 고 글자 수가 제한이 있음.
  • 9. POST • 복잡한 요청을 넘기기 위한 프로토콜
  • 10. Response From Server HTTP/1.1 200 OK Server: nginx Date: Mon, 20 Oct 2014 07:48:09 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: close Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Content-Encoding: gzip
  • 11. URI • 서버에 자원을 요청하는 주소. 웹서버에 이 주소로 요 청하면 해당하는 위치에 있는 리소스가 날아오게 됨
  • 12. 동적 페이지 vs 정적 페 이지 • 위와 같은 세팅에서는 *이미 존재하는* 리소스만 넘 겨줄 수 있음. • Q. 동적으로 컨텐츠를 만들어서 전송하는 것은?(현 재 시간, 주사위의 눈의 수…) • 서버 상에 데이터를 저장하고 싶을 때는?
  • 13. CGI 매핑되어 있는 주소로 요청이 들어옴 요청을 확인한 서버가 도우미 어플리케이션 호출 CGI(도우미 어플리케이션)은 페이지를 만들어서 서버에 넘겨줌 서버는 클라이언트에게 응답함
  • 14. 톰캣 설치 • 톰캣을 설치해보자 • http://blog.naver.com/piro37/220052701416 • 톰켓은 JSP/Servlet 컨테이너 중 하나로 사용자에게 jsp 요청을 받으면 서블릿으로 이를 변환해서 실행. • 톰켓 자체에 간단한 웹서버가 내장되어 있음.
  • 16. 서블릿 이론 • CGI는 동적인 웹 어플리케이션 기술로 서블릿보다 먼저 만들어짐 • 자바로 작성된 코드. JVM 위에서 돌아가기 때문에 하 드웨어랑 소프트웨어로부터 자유로움 • 클라이언트에서 받은 요청을 웹 컨테이너(톰켓)으로 보내게 됨.
  • 17. 처리과정 웹 브라우저에서 서버로 helloServlet을 요청 요청받은 웹서버는 서블릿 컨테이너에게 HelloServlet 처리 요청 서블릿 컨테이너는 HelloServlet을 찾고 실행 HelloServlet은 처리결과를 웹서버로 주고, 웹서버는 이걸로 응답
  • 18. DD • 요청이 들어온 서블릿을 매핑해주는 역할 • 웹 어플리케이션에는 하나의 DD만 존재함 <servlet> <servlet-name>Insert</servlet-name> <servlet-class>com.namex.shortener.Insert</servlet-class> <load-on-startup>-1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Insert</servlet-name> <url-pattern>/insert</url-pattern> </servlet-mapping>
  • 19. DD • <servlet-name> : 서블릿 태그를 servlet-mapping과 연관시킨다. • <servlet-class> : 이 안에는 자바 클래스 이름이 들어 감 • <url-patten> : 이 주소로 요청이 들어오면 자바 클래 스를 호출하게 됨.