[BackEnd] Servlet (03/07)

박세윤·2023년 3월 7일

BackEnd

목록 보기
1/5
post-thumbnail

📖 Servlet

📌 웹 프로그래밍


✅ Web Arcitecture

  • WAS : 여러 업체에서 제공하는데, 우리는 Java를 활용하는 Tomcat을 사용할 것.



✅ 웹과 웹 프로그래밍

  • URL (Uniform Resource Locator) - 웹 상의 자원을 참조하기 위한 웹 주소

  • 웹 페이지 (Web Page) - 웹 브라우저를 통해서 보여지는 화면

  • 웹 서버 (Web Server) - 클라이언트 요청에 맞는 응답(웹 페이지)을 제공

  • 웹 어플리케이션 (Web Application) - 웹 서버를 기반으로 실행되는 응용 소프트웨어

  • 웹 어플리케이션 서버 (Web Application Server, WAS) - 요청이 오면 알맞은 프로그램을 실행하여 응답 만들고 제공하는 서버( 웹 서버 자체만으로는 동적인 요청을 처리하기 어려워, WAS가 도움을 줘야 한다.)



✅ 세팅

이클립스 Java EE

  • Context root : https://localhost:8080/BackEnd01_Hello/HelloServlet 에서 BackEnd01_Hello에 해당

  • Context directory : Web_Content : 각종 html css js 관련 파일들이 들어가있음

📌 Servlet

✅ Servlet

  • Servlet
    • Server + Applet
    • 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술
    • 자바를 이용하여 웹 페이지를 동적으로 생성
    • Servlet은 자바 코드 안에 HTML을 포함



✅ Servlet API





✅ Servlet 등록 방법 (Web.xml)

  1. web.xml

  2. Annotation



✅ Servlet 생명주기 (Life-Cycle)

  • 서블릿 인스턴스는 서블릿이 포함된 웹 컨테이너에 의해 제어된다.

  • 서블릿 인스턴스가 존재하지 않으면 다음과 같은 작업을 수행한다.
    1. 서블릿 클래스 로드

    1. 서블릿 클래스 인스턴스 생성

    2. 서블릿 인스턴스 초기화 - init 메서드 동작

    3. 웹 컨테이너에 의한 서비스 메서드 호출

    4. destory 메서드를 호출하여 서블릿 종료

      4 : 여러번 호출
      1~3 : 한번만 호출

  • 서비스 메서드는 요청이 들어올 때 마다 호출된다.



📌 Servlet Parameter

✅ GET / POST

GETPOST
지정된 리소스에서 데이터를 요청하는 데 사용리소스를 생성 / 업데이트하기 위해 서버에 데이터를 보내는데 사용
query string(name/value 쌍)이 URL에 포함되어 전송됨. POST와 비교하여 보안에 취약HTTP header의 body에 파라미터를 포함하여 전송, 데이터 길이에 대한 제한 X , 매개변수가 브라우저나 웹 서버에 저장되지 않음.
URL 길이 제한 -> 전송 가능 데이터 길이 제한적(2048) ASCII 문자만 가능제한 없음, 바이너리 데이터도 허용



✅ URL 구성 요소

구성요소설명
프로토콜웹 브라우저가 서버와 통신하기 위한 규약
서버웹 페이지를 요청할 서버의 주소, 실제 IP 주소나 도메인을 입력할 수 있다.
경로서버 내의 상세 경로
쿼리 스트링추가로 서버로 데이터를 전송하기 위해서 사용한다. ? 마크를 적어 시작 표시. parameter_name=value 형태로 작성하며 파라미터가 여러개일 경우 &로 구분하여 작성



✅ input tag

  • text (영어 / 한글)

  • number

  • radio

  • checkbox

  • select

  • textarea

  • hidden



✅ Front-Controller

  • 웹에서 발생하는 모든 요청에 대해 호출되는 Servlet을 만들어 처리함

  • Front Controller Pattern

    • 웹에서 발생하는 모든 요청에 대해 호출되는 Servlet을 만들어 처리
    • 웹 어플리케이션(Web application)과 관련된 패턴(Pattern)
    • 모든 리소스(Resource) 요청을 처리해주는 하나의 컨트롤러(Controller)를 두는 패턴
    • MVC(Model-View-Controller) Pattern과 함께 사용하는 패턴
  • Front Controller Pattern 장점

    • 모든 요청(Request)를 하나의 컨트롤러(Controller)를 통해 작업을 한 곳에서 수행할 수 있다.
    • 추적(Tracking)이나 보안(Security)를 적용할 때 하나의 컨트롤러(Controller)에 하기 때문에 편하다.
    • 파일 구조가 바뀌어도 URL을 유지할 수 있다.



profile
개발 공부!

0개의 댓글