headfisrt servlet&jsp chapter 1

19
Servlets & JSP 1장

Upload: j-b

Post on 25-Jul-2015

147 views

Category:

Software


2 download

TRANSCRIPT

Page 1: HeadFisrt Servlet&JSP Chapter 1

Servlets & JSP

1 장

Page 2: HeadFisrt Servlet&JSP Chapter 1

What is Server

A. 클라이언트는 요청하고 , 서버는 제공한다 .

Page 3: HeadFisrt Servlet&JSP Chapter 1

What is Client사용자가 웹 페이지의 링크를 클릭

요청으로 만들어서 서버로 넘김

서버는 데이터를 찾은 후 응답으로 만들어서 넘김

브라우저는 넘겨받은 값을 사용자가 확인할 수 있게 화면에 출력함

Page 4: HeadFisrt Servlet&JSP Chapter 1

HTML & HTTP

• HTML : 브라우저가 화면에 어떻게 컨텐츠를 출력할지 알려주는 프로토콜 (hyper text markup language)

• HTTP : 클라이언트와 서버가 대화하는 언어 . 웹상의 요청은 거의 대 부분 HTTP 프로토콜에 기초하여 이루어짐 (hypertext transfer protocol)

Page 5: HeadFisrt Servlet&JSP Chapter 1

HTML…?

• 알고 있는 거니까 넘어갑시다 . 주석 , <a>, <br> 등의 태그들이 존재합니다 .

Page 6: HeadFisrt Servlet&JSP Chapter 1

HTTP

• 요청 / 응답의 끊임없는 주고 받음 .

• HTTP 요청 / 응답 안에 HTML 이 포함되어 있음 .

Page 7: HeadFisrt Servlet&JSP Chapter 1

GET/POST

• 가장 많이 사용되는 두 가지 요청

• GET : 서버에게 클릭한 페이지를 달라고 요청하는 것 - 단순한 요청에 사용됨

• POST : 사용자가 입력한 값을 함께 보내는 것 - 사용자가 입력한 값을 함께 넘겨주어야 할 때 사용

Page 8: HeadFisrt Servlet&JSP Chapter 1

GET• GET 으로도 데이터를 보낼 수 있으나 , 폼에 다 보이고

글자 수가 제한이 있음 .

Page 9: HeadFisrt Servlet&JSP Chapter 1

POST• 복잡한 요청을 넘기기 위한 프로토콜

Page 10: HeadFisrt Servlet&JSP Chapter 1

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

Page 11: HeadFisrt Servlet&JSP Chapter 1

URI

• 서버에 자원을 요청하는 주소 . 웹서버에 이 주소로 요청하면 해당하는 위치에 있는 리소스가 날아오게 됨

Page 12: HeadFisrt Servlet&JSP Chapter 1

동적 페이지 vs 정적 페이지

• 위와 같은 세팅에서는 * 이미 존재하는 * 리소스만 넘겨줄 수 있음 .

• Q. 동적으로 컨텐츠를 만들어서 전송하는 것은 ?( 현재 시간 , 주사위의 눈의 수… )

• 서버 상에 데이터를 저장하고 싶을 때는 ?

Page 13: HeadFisrt Servlet&JSP Chapter 1

CGI매핑되어 있는 주소로 요청이 들어옴

요청을 확인한 서버가 도우미 어플리케이션 호출

CGI( 도우미 어플리케이션 ) 은 페이지를 만들어서 서버에 넘겨줌

서버는 클라이언트에게 응답함

Page 14: HeadFisrt Servlet&JSP Chapter 1

톰캣 설치

• 톰캣을 설치해보자

• http://blog.naver.com/piro37/220052701416

• 톰켓은 JSP/Servlet 컨테이너 중 하나로 사용자에게 jsp 요청을 받으면 서블릿으로 이를 변환해서 실행 .

• 톰켓 자체에 간단한 웹서버가 내장되어 있음 .

Page 15: HeadFisrt Servlet&JSP Chapter 1

서블릿 실습

• http://dkatlf900.tistory.com/68

Page 16: HeadFisrt Servlet&JSP Chapter 1

서블릿 이론

• CGI 는 동적인 웹 어플리케이션 기술로 서블릿보다 먼저 만들어짐

• 자바로 작성된 코드 . JVM 위에서 돌아가기 때문에 하드웨어랑 소프트웨어로부터 자유로움

• 클라이언트에서 받은 요청을 웹 컨테이너 ( 톰켓 ) 으로 보내게 됨 .

Page 17: HeadFisrt Servlet&JSP Chapter 1

처리과정웹 브라우저에서 서버로 helloServlet 을 요청

요청받은 웹서버는 서블릿 컨테이너에게 HelloServlet 처리 요청

서블릿 컨테이너는 HelloServlet 을 찾고 실행

HelloServlet 은 처리결과를 웹서버로 주고 , 웹서버는 이걸로 응답

Page 18: HeadFisrt Servlet&JSP Chapter 1

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>

Page 19: HeadFisrt Servlet&JSP Chapter 1

DD

• <servlet-name> : 서블릿 태그를 servlet-mapping 과 연관시킨다 .

• <servlet-class> : 이 안에는 자바 클래스 이름이 들어감

• <url-patten> : 이 주소로 요청이 들어오면 자바 클래스를 호출하게 됨 .