ݺߣ

ݺߣShare a Scribd company logo
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> : 이 주소로 요청이 들어오면 자바 클래
스를 호출하게 됨.

More Related Content

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> : 이 주소로 요청이 들어오면 자바 클래 스를 호출하게 됨.