본문 바로가기

아카이브/항해99 취업 리부트 코스 학습일지

[항해99 취업 리부트 코스 학습일지] 토비의 스프링 부트 🌿 독립 실행형 서블릿 애플리케이션

728x90

 

이번 주 목표

토비의 스프링 부트

항해 99 정규 과정

GO 로컬 회원가입 API 만들기

오늘 목표

토비의 스프링 부트

항해 99 정규 과정

GO MySQL 연결

오늘 한 것

토비의 스프링 부트

항해 99 정규 과정

오늘 스케줄

아침 - 토비의 스프링 부트

저녁 - GO

 

 

 

1. Mapping

요청을 알맞은 Servlet에 연결하는 작업

2. 서블릿 등록

package tobyspring.helloboot;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServer;

import java.io.IOException;

public class HellobootApplication {

	public static void main(String[] args) {

		// 서블릿 컨테이너 띄우기
		TomcatServletWebServerFactory serverFactory = new TomcatServletWebServerFactory();

		// 익명 클래스, 람다식으로 전환
		WebServer webServer = serverFactory.getWebServer(servletContext -> {
		servletContext.addServlet("hello", new HttpServlet() {
			@Override
			protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
				resp.setStatus(200);
				resp.setHeader("Content-Type","text/plain");
				resp.getWriter().println("Hello Servlet");
			}

		// hello로 들어오면 여기서 처리하겠다.
		}).addMapping("/hello");
		});
		webServer.start();
	}

}

 

2. ENUM으로 처리

resp.setStatus(HttpStatus.OK.value());
resp.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE);

 

3. Parameter 넘기기

package tobyspring.helloboot;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServer;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;

import java.io.IOException;

public class HellobootApplication {

	public static void main(String[] args) {

		// 서블릿 컨테이너 띄우기
		TomcatServletWebServerFactory serverFactory = new TomcatServletWebServerFactory();

		// 익명 클래스, 람다식으로 전환
		WebServer webServer = serverFactory.getWebServer(servletContext -> {
		servletContext.addServlet("hello", new HttpServlet() {
			@Override
			protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
				String name = req.getParameter("name");

				resp.setStatus(HttpStatus.OK.value());
				resp.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE);
				resp.getWriter().println("Hello " + name);
			}

		// hello로 들어오면 여기서 처리하겠다.
		}).addMapping("/hello");
		});
		webServer.start();
	}

}

 

4. 프론트 컨트롤러

모든 서블릿에 공통적인 작업을 처리하는 것

ex) 인증, 보안, 다국어 처리 등의 작업 > 자바 Enterprize 개발에 대표적인 패턴

 

 

출처 : 토비의 스프링 부트 - 이해와 원리


KPT

Keep

집중하는 것

Problem

-

Try

파이팅

소감

드디어 코어 집중

파이팅