BackEnd 학습/Spring Framework

Spring(스프링) - 서블릿

잉아당 2023. 5. 31. 22:56
728x90

Hello Servlet

  • @ServletComponentScan
    • 서블릿을 찾아 자동으로 등록 해줌
  • @WebServlet
    • name:서블릿
    • urlPatterns: url 매핑
  • servlet을 사용하기 위해서는 HttpServlet을 상속받아 사용
  • 요청을 통해 매핑된 url이 실행되면 service 메서드를 실행
  • logging.level.org.apache.coyote.http11=debug;
    • 개발용 로깅 설정

HttpServletRequest - 개요

  • 서블릿은 HTTP요청 메시지를 편리하게 사용할 수 있도록 HTTP 요청 메시지를 파싱하고 그 결과를 HttpServletRequest 객체에 담아서 제공
  • Start line
    • HTTP 메서드
    • URL
    • 쿼리스트링
    • 스키마, 프로토콜
  • 헤더
    • 헤더 조회
  • 바디
    • form 파라미터 형식 조회
    • message body 직접 조회
  • 임시 저장소 기능
    • HTTP 요청이 시작부터 끝날때 까지 유지되는 임시 저장소 기능
      • 저장 : request.setAttribute(name, value)
      • 조회 : request.getAttribute(name)
  • 세션 관리 기능
    • request.getSession(create: true)

HttpServletRequest - 기본 사용법

  • header의 정보는 request 객체를 통해 추출할 수 있음

HTTP 요청 데이터 개요

  • GET - 쿼리파라미터
    • /url?username=ko&age=26
    • 메시지 바디 없이 쿼리파라미터를 통해 전달
    • 검색, 필터 등에 많이 사용
  • POST - HTML Form
    • 메시지 바디에 쿼리파라미터 형식으로 전달
    • 주문, 회원가입 등에 사용
  • HTTP message body
    • 직접 담아서 사용
    • API 에서 사용되며 JSON 형식으로 주로사용
    • POST, PUT, PATCH

HTTP 요청 데이터 - GET 쿼리파라미터

  • ? 를 시작으로 &로 구분하여 추가 파라미터를 전달할 수 있음
  • HttpServletRequest가 제공하는 메서드를 통해 편하게 조회 가능
  • 동일한 파라미터 name은 기본적으로 첫번째 파라미터를 사용하지만 getParameterValues를 사용하면 배열로 들고와 사용 가능

HTTP 요청 데이터 - POST HTML Form

  • 주로 회원가입, 상품 주문 등에서 사용하능 방식
  • 데이터를 body에 쿼리 파라미터 형태로 전달
  • GET의 파라미터 조회 메서드를 사용하면 됨
  • content-type은 HTTP 메시지 바디의 데이터 형식을 지정

HTTP 요청데이터 - API 메시지 바디 (단순 텍스트 / JSON)

  • 단순 텍스트
    • HTTP message body에 데이터를 직접 담아서 요청
    • 주로 JSON 사용
    • InpustStream을 사용해서 직접 읽을 수 있음
  • JSON
    • 객체로 파싱하여 사용

HttpServletResponse - 기본 사용법

  • HTTP 응답 메시지 생성
    • 응답코드 지정
    • 헤더 생성
    • 바디 생성
  • Content-Type, Cookie, Redirect 등 편리하게 사용 가능

HTTP 응답 데이터 - 단순 텍스트, HTML, API-JSON

  • 단순 텍스트 응답
  • HTML 응답
    • content-type : text/html 로 지정
  • API - JSON
    • content-type : application/json 지정

 

 

출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com