[스프링 MVC 1편] 2 - (2) 서블릿 생성
* 스프링 입문은 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