2022.07.26 화요일

  • Internet 상에서 HTTP를 사용하는 World Wide Web service
  • C/S 구조
    • 상대적으로 다수의 Client가 소수의 Server에 접속해서 Service를 제공받는 형태
    • 정적 web(Static web)
  • HTTP Request
    • request 방식(방법)
      - 총 6가지가 있는데 REST라고 하는 4가지만 쓴다.
      - GET
      - POST
      - PUT
      - DELETE

      GET 방식

      request 전달 방법 3가지

    • browser 주소창에 직접 URL을 입력한 후 request를 전달

    • <a href=”~”>를 click해서 request를 전달

    • <form>의 method 속성에 “GET”을 써서 request를 전달

      장단점

      client의 추가적인 data를 Query String이라는 형식으로 Server에 전달

      POST 방식

      request 전달 방법

    • <form>의 method 속성에 “POST”를 써서 request를 전달

      장단점

      client의 추가적인 data를 Request 안에 포함해서 길이 제한이 없다.

      💡 <form>의 method 속성에 “POST”를 쓰지 않은 것은 거의 대부분 GET 방식이라고 봐도 무방하다.
      <form>을 이용할 경우 거의 예외없이 POST 방식을 사용한다.

  • 동적 web(dynamic web)
    • web server 측에서 web client가 요청한 program을 실행한 후 그 결과를 HTTP Response로 돌려준다.
    • CGI(Common Gateway Interface)
      • 처음에는 process 단위로 실행되었지만 server에 부하가 많이 가게 되었다.
      • Thread 단위로 바꿔서 경량화시켜서 실행시키도록 구조가 바뀌게 되었다.
        • MS: ASP
        • PHP
        • Java: Servlet, JSP
    • 구조
  • Apache Tomcat
    • HTTP Server + Servlet container
    • Web상에서 동작하는 Java program을 만들기 위한 규칙
    • Servlet → HTTP Servlet → 상속해서 구현 → eclipse의 도움을 받아서 servlet을 생성

Servlet의 실행 순서

  • servlet 객체는 여러 개가 만들어지는 것이 아니다. 하나만 존재한다.
  • 다수의 client가 들어오면 여러 개의 Thread가 생기고 이 Thread들이 servlet instance(공용 객체)를 공유해서 사용한다.
  • class 하나로부터 instance 하나가 나옴. → 싱글톤 형태

Servlet이 가지는 가장 큰 단점

  • response에 포함될 결과 HTML을 Java program 내에서 기술 ⇒ 노동 집약적

JSP Element(JSP 요소)

  • 주석 <%— 주석 내용 —%>
  • directive <%@ 지시어 %>
    • 환경설정에 관련된 내용
    • <%@ page %>
      • import 구문, 페이지 인코딩, context-type 등을 나타냄
  • declaration <%! 변수, method %>
  • scriptlet <% Java Code %>
  • Expresion <%= 식 %>

JSP의 내장객체

JSP 코드 내에서 그냥 사용할 수 있는 객체

  1. request 객체

    HttpServletRequset class type의 객체

  2. response 객체

    HttpServletResponse class type의 객체

  3. out

    PrintWritner 객체

  4. session

    HttpSession class 객체(web client 당 1개씩 할당)

    client의 작업을 지속적으로 tracking

  5. application

    Servlet Context 객체(모든 Servlet에 의해 공유되는 객체)

  6. page

    this와 같음.

Layered Architecture

  • Presentation Layer
  • Business Logic Layer
  • Persistence Layer
  • Database Layer

⇒ 위의 레이어드 아키텍쳐를 적용해야 해서 JSP의 역할이 ⬇️

MVC

software system 3가지 type의 component로 분할하는 소프트웨어

프로젝트를 만들어봅시다.

BookStoreProject

  • login
  • 도서검색

0개의 댓글