Spring

Spring MVC -김영한 백엔드 (1)

jmboy 2024. 4. 22. 17:17

김영한의 Spring MVC (1)를 기반으로 작성합니다.

Servlet 이란?

  • 기존의 서버는 서버 TCP/IP 연결 대기, 소켓 연결, HTTP 요청 메세지를 파싱, 등등의 비즈니스 로직을 실행하기 위해서는 여러 업무를 처리했어야 했다.
  • Servlet 을 지원하는 WAS를 사용해 의미있는 로직만 개발자가 작성할 수 있도록 도와주는 역할을 한다!
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response){
//애플리케이션 로직
    }
}
  • urlPatterns(/hello) 의 URL 이 호출되면 서블릿 코드가 실행됨.
  • 요청 , 응답 정보를 편하게 사용할 수 있는 HttpServletRequest,Response

  • HTTP 요청시 WAS 는 Request,Response 객체를 새로 만들어 Servlet객체를 호출한다. 해당 내용으로 HTTP 응답 정보를 생성한다.

@WebServlet(name="서블릿이름",urlPatterns="")
public class 클래스이름 extends HttpServlet{
    @Override
    protected void service(~~~)
}

@WebServet : 서블릿 어노테이션

HttpServletRequest 에 요청된 파라미터 값이 다 들어간다.

  • request.setAttribute(name,value) :임시 저장소 기능의 저장
  • request.getAttribute(name) : 조회
    요청에 관련한 값들을 가져올 수 있다.

API 메세지 바디에서 JSON 형식으로 들어온 데이터를 파싱하려면 ObjectMapper 를 사용하면 된다.

HttpServletResponse 에 응답값을 넣어서 돌려줄 수 있다.

  • response.setContentType("text/plain")
  • response.setCharacterEncoding("utf-8")

단순 텍스트를 돌려 줄 때는 writer를 사용한다.

`writer.printlnk("ok")``

  • JSON 을 보내고자 할 때는 objectMapper 를 사용해서 준다. 물론 springboot 에서 해봤지만, 객체 자체를 주어도 JSON으로 나온다.

JSP

  • HTML에 java 코드를 삽입해서 사용하기 편하게 만든 템플릿.
  • 하지만 최근 시장성이 떨어져 많이 사용하진 않는 추세다.