본문 바로가기
Spring/스프링 MVC

[스프링 MVC 1편] 2 - (2) 서블릿 생성

by Poorm 푸름 2023. 10. 21.

* 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다

 *          : 자바 클래스명,         : 코드,         : 단축키

 

1. Servlet의 동작원리  

 
   SpringBoot 실행 

               

   내장된 Tomcat 서버(WAS) 실행

               

   ServletComponentScan 동작

               

   Servlet Container에 Servlet객체 등록

               

   클라이언트의 HTTP Request 요청

               

   WAS에서 이를 HttpServletRequest 객체로 만들어 Servlet객체에게 전달

               

   Servlet 객체Service() 메서드 호출, 비즈니스 로직을 수행

               

   수행한 로직의 결과물 HttpServletResponse의 객체에 담아 클라이언트에 전달 

 

 

2 - (1). Servlet 등록 [ src - main - java - hello.servlet - ServletApplication]


- @ServletComponentScan

  • main() 메서드가 존재하는 클래스 또는 최상위 경로의 클래스에 부착하는 어노테이션
  • 패키지 하위 경로에 존재하는 모든 클래스를 Scan해서 서블릿을 찾아 모두 자동 등록해준다

 

2 - (2). Servlet 등록 [src - main - java - hello.servlet - basic - HelloServlet ]

 

- public class HelloServlet extends HttpServlet 

  • 서블릿을 사용하기 위해 HttpServlet을 상속받는다
  • 서블릿이 웹상에서 HTTP 프로토콜을 이용해 서비스를 처리하기 위해 반드시 상속받아야 하는 클래스
  • 모든 서블릿 클래스의 상위 클래스는 HttpServlet

- @WebServlet(name = "helloServlet", urlPatterns = "/hello" )

 

  • 어노테이션을 제공
  • 괄호 안의 주요 속성 : name, urlPatterns, value
  • 해당 어노테이션에 경로를 입력하면 클라이언트에서 톰캣서버가 찾아서 실행한다
  •  web.xml 파일과 중복된 값이 있으면 충돌이 일어나기 때문에 한 곳에서만 사용 (name ≠ url)
  • 위 코드에서는 애노테이션을 통해 서블릿의 name, urlPattern(매핑정보)의 설정

    ** 어노테이션이란?

        사전적의미로 주석
        컴파일러에게 코드 작성 문법 에러 체크하도록 정보 제공
        빌드나 배포시 코드를 자동으로 생성하도록 정보 제공

        런타임에 특정 기능 실행하도록 정보 제공 


- protected service (control + o)

 

  • servlet 호출되면 서비스 메서드도 호출
  • 위에서 만든 urlPatterns 대로 검색하면 콘솔 로그에 해당 명령어 출력

 - request.getParameter("username")

 

  • HTTP 요청의 파라미터 값을 얻기 위해 사용하는 메서드
  • 사용자가 입력한 데이터를 가져올 수 있다
  • 문장 끝에 커서 두고 option + command + V

- response.getWriter().write("hello" + username)

  • response.getWriter()를 통해 writer 객체를 얻는다
  • write나 print를 통해 response body message를 생성하여 응답 
  • 실제 홈피에 write() 안의 내용이 출력된다

 

3. HTTP 요청 메세지 콘솔로 확인 [src - main - resources - application.properties ]


- logging.level.org.apache.coyote.http11=debug

 

 

4. Index.html 작성

 

- 강의 안에 코드 복붙해주세요^^

 

 

 

 

[출처] 김영한 강사님 인프런 스프링 MVC 1편

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

 

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

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

www.inflearn.com