Spring MVC/서블릿

Hello 서블릿 실습

운동하는 주니어개발자 2023. 5. 2. 19:31

서블릿 실습을 진행하기 위해서 프로젝트는 생성해준다. 프로젝트는 다음과 같이 생성해준다.

프로젝트를 생성할 때 보통 Packaging를 War이 아닌 Jar로 많이 생성하는데 JSP에 대해서 공부를 진행하기 위해서

Jar이 아닌 War을 선택해서 생성하겠다. 다음으로는 사진과 같이 Spring Web, Lombok를 선택 후 생성해준다.

이어서 다음과 같이 셋팅을 해준다. File -> Settings -> 검색창에 annotation processors

이어서 https://www.postman.com/downloads/에 접속 후 postman을 다운받아준다.

서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 올린 다음,

톰캣 서버를 실행하면 되지만 매우 번거롭다.

Spring Boot는 톰캣 서버를 내장하고 있으므로 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다.

ServletApplication.java

package hello.servlet;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@ServletComponentScan // 서블릿 자동 등록
@SpringBootApplication
public class ServletApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServletApplication.class, args);
    }

}

 

basic 패키지를 생성하고 HelloServlet.java파일을 생성 후 코드를 작성한다.

HelloServlet.java

package hello.servlet.basic;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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);
    }
}

 

'Spring MVC > 서블릿' 카테고리의 다른 글

HTTP 요청 데이터 - POST HTML Form  (0) 2023.05.04
HTTP 요청 데이터 - GET 방식  (0) 2023.05.04
HttpServletRequest  (0) 2023.05.04