-
[김영한 스프링] 03. Hello 서블릿Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 6. 12. 22:29
Hello 서블릿
@ServletComponentScan
- 스프링이 현재 패키지를 포함 하위 패키지를 다 찾아서 서블릿을 자동으로 서비스 등록
main/java/hello.servlet/basic/HelloServlet 생성
Ctrl + O 키로 재정의/구현할 메서드 선택 창을 띄운 후 service를 입력하여 열쇠모양으로 되어있는 service를 선택
HttpServlet
- 서블릿이 웹상에서 HTTP 프로토콜을 이용해 서비스를 처리하기 위해 반드시 상속받아야 함
@WebServlet
- 경로를 입력하면 알아서 톰캣서버가 찾아서 실행해줌
- name : 서블릿 이름
- urlPatterns : URL 매핑
ServletApplication 실행
localhost:8080/hello 접속
빈 화면이 정상
로그 정상적으로 찍힘
쿼리 파라미터를 보기 위해 getParameter 추가
localhost:8080/hello?username=kim
package hello.servlet.basic;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("HelloServlet.service");
System.out.println("request = " + request);
System.out.println("response = " + response);
String username = request.getParameter("username");
System.out.println("username = " + username);
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
response.getWriter().write("hello " + username);
}
}response 추가
setContentType, setCharacterEncoding : 헤더
getWriter : 바디
HTTP 요청 메시지 로그로 확인하기
applocation.properties에 logging.level.org.apache.coyote.http11=debug 입력
서블릿 컨테이너 동작 방식 설명
내장 톰캣 서버 생성
HTTP 요청, HTTP 응답 메시지
웹 애플리케이션 서버의 요청 응답 구조
welcome 페이지 추가
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li><a href="basic.html">서블릿 basic</a></li>
</ul>
</body>
</html>main/webapp/index.html 생성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>hello 서블릿 <ul>
<li><a href="/hello?username=servlet">hello 서블릿 호출</a></li>
</ul>
</li>
<li>HttpServletRequest
<ul>
<li><a href="/request-header">기본 사용법, Header 조회</a></li>
<li>HTTP 요청 메시지 바디 조회
<ul>
<li><a href="/request-param?username=hello&age=20">GET - 쿼리 파라미터</a></li>
<li><a href="/basic/hello-form.html">POST - HTML Form</a></li>
<li>HTTP API - MessageBody -> Postman 테스트</li>
</ul>
</li>
</ul>
</li>
<li>HttpServletResponse
<ul>
<li><a href="/response-header">기본 사용법, Header 조회</a></li>
<li>HTTP 응답 메시지 바디 조회
<ul>
<li><a href="/response-html">HTML 응답</a></li>
<li><a href="/response-json">HTTP API JSON 응답</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</body>
</html>main/webapp/basic.html 생성
출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1
'Spring > 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 카테고리의 다른 글
[김영한 스프링] 06. 서블릿 - HTTP 요청 데이터(API 메시지 바디) (0) 2023.06.16 [김영한 스프링] 05. 서블릿 - HTTP 요청 데이터(GET 쿼리 파라미터, POST HTML Form) (0) 2023.06.15 [김영한 스프링] 04. 서블릿 - HttpServletRequest (0) 2023.06.14 [김영한 스프링] 02. 서블릿 - 프로젝트 생성 & 세팅 (0) 2023.06.11 [김영한 스프링] 01. 웹 애플리케이션 이해 - 서블릿, 동시요청 멀티 쓰레드 (0) 2023.06.09