서블릿 정리

김원종·2023년 12월 28일

서블릿 - 프로젝트 생성

  • Hello 서블릿
  • HttpServletRequest - 개요
  • HttpServletRequest - 기본 사용법
  • HTTP 요청 데이터 - 개요
  • HTTP 요청 데이터 - GET 쿼리 파라미터
  • HTTP 요청 데이터 - POST HTML Form
  • HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트
  • HTTP 요청 데이터 - API 메시지 바디 - JSON
  • HttpServletResponse - 기본 사용법
  • HTTP 응답 데이터 - 단순 텍스트, HTML
  • HTTP 응답 데이터 - API JSON

HttpServletRequest - 기본 사용법

헤더 정보를 편리하게 제공하는것들

  • printStartLine(request);
  • printHeaders(request);
  • printHeaderUtils(request);
  • printEtc(request);

HTTP 요청 데이터 - 개요

  • 클라이언트에서 서버로 헤더정보나 부가정보 말고 진짜 원하는 데이터 검색조건이나 회원가입할때 필요한 회원정보등 같은것들을 보낼때는 주로 3가지 방법을 사용한다.
    즉 클라이언트에서 서버로 메시지를 보낸 방법 3가지 라는 말이다.

1 .GET - 쿼리 파라미터

  • /url?username=hello&age=20
    메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달
    예) 검색, 필터, 페이징등에서 많이 사용하는 방식

2 .POST - HTML Form

  • content-type: application/x-www-form-urlencoded
    메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20
    예) 회원 가입, 상품 주문, HTML Form 사용

3.HTTP message body에 데이터를 직접 담아서 요청

  • HTTP API에서 주로 사용, JSON, XML, TEXT
    데이터 형식은 주로 JSON 사용
    POST, PUT, PATCH

**주로 JSON형태로 사용한다. 과거에는 XML을 많이 사용했는데 JSON이 등장하면서 복잡하고 번거로운 XML보다 심플하고 직관적인 JSON을 많이사용한다. 사실상 표준이 JSON으로 이야기 되고 있다.

GET 방식의 쿼리파라미터와 form url encoded 방식은 사실 모양이 똑같다.그래서 서버에서 읽을 때는 request.getparameter라고 해서 이 두가지를 다 읽을수 있다! 그걸 요청 파라미터 라고 퉁쳐서 두가지 어떤 방식으로 읽을수 있도록 요청 파라미터를 읽는다 라고 보통 이야기한다.

HTML 폼 데이터를 보낼때는 POST말고 다른건 사용이 불가능한가?
그렇다. HTML 스펙상 폼 데이터를 바디로 전송할때는 POST방식만 허용이 된다.
스프링에서는 되는데?라는 말은 스프링은 사실 포스터로 전송을 하는데 그 밑에 인풋에 히든필드를 넣어놓는다.그래서 만약 PUSH 라고 하면 서버에서 마치 PUSH인것 처럼 처리를 해주기도 한다.하지만 진짜 그렇게 되는것이 아니라 실제로는 포스트로 전송이 된다.
히든 필드에 그런 정보를 넣어놓고 프레임워크가 그냥 그렇게 인정을 해주고 히든필드와 관련된 컨트롤러가 호출되도록 해주기도 한다.

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

//[status-line] 상태코드 지정
response.setStatus(HttpServletResponse.SC_OK); //200

//[response-headers] 헤더값지정
response.setHeader("Content-Type", "text/plain;charset=utf-8");
response.setHeader("Cache-Control", "no-cache, no-store, mustrevalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("my-header","hello");

/[Header 편의 메서드] 지능기원
content(response);
cookie(response);
redirect(response);

profile
개린이

0개의 댓글