Skip to main content

서블릿

·214 words·2 mins· loading
Table of Contents
SpringMVC1 - This article is part of a series.
Part 3: This Article

프로젝트 생성
#

서블릿은 스프링이 필요없지만, 환경설정이 잘 되 있어 스프링 사용 spring boot starter 에서 생성

다운 후, build.gradle 선택해서 열기

Hello 서블릿
#

@ServeltComponentScan을 통하여 스프링에서 서블릿 자동 등록

모든 서블렛은 javax.servlet.http.HttpServlet를 상속받음 @Webservlet으로 url mapping 요칭이 오면, 오버라이딩된 service메소드 실행

welcome page
#

/main/webapp경로에 있는 index.html


HttpServletRequest
#

서벌릿은 개발자 대신 Http 요청메세지를 파싱 =>HttpServletRequest 객체로 제공

Http요청 데이터
#

  • GET
    • url에 데이터를 포함해서 전달 (검색,페이징 등)
  • POST
    • content-type:application/x-www-form-urlencoded
    • 메시지 바디에 쿼리 파라미터 형식으로 전달
  • Http message body
    • body에 직접 데이터를 담아서 요청(json,
    • POST,PUT,PATCH

GET
#

  • 전체 param 조회
request.getParameterNames().asIterator()
               .forEachRemaining(paramName -> System.out.println(paramName + "="  + request.getParameter(paramName)))
  • 단일 param 조회
request.getParameter([])
  • 복수 param 조회
request.getParameterValues([])
//enumeration 반환(리스트)

POST
#

  • request.getParameter()는 GET,POST 둘다 지원
  • 폼만들기 귀찮을때 POSTMAN 어플 사용

API Message 방식
#

  • ttp message body에 데이터를 직접 담아서 요청

단순 텍스트
#

ServletInputStream inputStream = request.getInputStream(); //바이트로 꺼내기
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); //인코딩

JSON
#

  • json도 결국 문자열임
  • 부트에선ObjectMapper를 통해 객체로 변경

HttpServletResponse
#

Http응답 메세지 생성 응답코드, header, body 편의기능(Content-type, cookie, Rediret)

헤더 세팅 예제

 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //상태코드
        response.setStatus(HttpServletResponse.SC_OK);
        //헤더
        response.setHeader("Content-Type","text/plain;charset=utf-8");
        response.setHeader("Cache-Control", "no-cache, no-store, must- revalidate");
        response.setHeader("pragma","no-cache");
        response.setHeader("my-header","hello"); //나만의 헤더

        response.getWriter().println("Ok");
    }

이외에도 편의기능 세팅 가능

응답 데이터
#

  • 단순텍스트
  • HTML
  • MessageBody Json

API Json
#

  • response.setContentType("application/json");
  • ObjectMapper를 통하여 객체를 json으로

SpringMVC1 - This article is part of a series.
Part 3: This Article