Hyunebee

스프링MVC - Servlet 본문

Spring/MVC

스프링MVC - Servlet

Hyunebee 2022. 1. 11. 12:29

name: 서블릿 이름  urlPatterns: URL 매핑

HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.

 

protected void service(HttpServletRequest request, HttpServletResponse response)

 

HttpServletRequest사용

HTTP 요청 메세지를 직접 파싱해서 사용해도 되지만 불편 HttpServletRequest는 이를 대신 파싱해주고 그 결과를 객체에 담아서 제공한다. 

 

START LINE

  HTTP 메소드 : request.getMethod()

  URL : request.getRequestURL(),request.getRequestURI()

  쿼리 : request.getQueryString()

  스트링 스키마,프로토콜 : request.getScheme() ,  request.getProtocol()

헤더

  헤더 조회 : request.getHeaderNames() =for, asIterator()사용

  하나씩 조회도 가능하다.

바디

  form 파라미터 형식 조회

  message body 데이터 직접 조회

 

 

HTTP 요청 데이터 - 개요

전달 데이터 username = hello, age = 20

 

1.GET - 쿼리 파라미터

 message Body x, URL의 쿼리파라미터에 데이터를 포함 전달

 검색 필터 페이징에 주로 사용

 쿼리 파라미터는 URL에 다음과 같이 ? 를 시작으로 보낼 수 있다. 추가 파라미터는 & 로 구분하면 된다

 단일 객체 조회 : request.getParameter()

 중복 객체 조회 : request.getParameterValues()

 

2.POST - Form 사용

 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20

 request.getParameter() 는 GET URL 쿼리 파라미터 형식도 지원하고, POST HTML Form 형식도 둘 다 지원한다.

 단일 객체 조회 : request.getParameter()

 

 이때 GET은 message body 사용을 하지않고  POST는 사용하기 때문에 POST에 content-type : application/x-www-form-urlencoded 가   있다. 

 

3.HTTP message Body에 직접 담아서 요청

  HTTP API에서 주로 사용, JSON, XML, TEXT

  JSON은 우리가 파싱할 수 있는 객체가 있어야 한다.

 

  private ObjectMapper objectMapper = new ObjectMapper(); 를 사용

 

  ServletInputStream inputStream = request.getInputStream(); // 읽어온 Stream을 byte로 변경

  String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); // String으로 바꿔준다.

  HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); // 해당 객체 타임으로 매핑 

  이제 helloData사용해서 출력할 수 있다. 

  

 

HttpServletResponse 사용

 

HTTP응답 메세지 생성

 1. 응답코드 지정

 2. Content- type

  response.setContentType("text/plain");

  response.setCharacterEncoding("utf-8");

  response.setHeader("Content-Type", "text/plain;charset=utf-8");

 3. 바디 생성

 4. 쿠키 생성

  Cookie cookie = new Cookie("myCookie", "good");

  cookie.setMaxAge(600); //600초

  response.addCookie(cookie);

 5. redirect

  response.sendRedirect("/url");

 

 

  

'Spring > MVC' 카테고리의 다른 글

스프링MVC - frontController(4)  (0) 2022.01.14
스프링MVC - frontController(3)  (0) 2022.01.14
스프링MVC - frontController(2)  (0) 2022.01.14
스프링MVC - frontController(1)  (0) 2022.01.14
스프링 MVC - 웹 어플리케이션 이해  (0) 2022.01.09