서블릿(Servlet)

jooog·2021년 12월 18일
0

스프링

목록 보기
7/26

서블릿이란

서블릿(Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램을 말한다.
웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종인 서블릿을 실행시켜 보자

서블릿 실행

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 = "Servlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("first servlet");
    }
}

어노테이션 살펴보기

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

먼저 서블릿의 이름과 url을 설정해준다

@Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("first servlet");
    }

HttpServlet에서 상속받은 service method를 override해준다

설정을 끝내고 localhost:8080/hello로 접속하면 화면에서 first servlet을 확인할 수 있다

request, response 객체 출력해보기

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        System.out.println("request = " + request);
        System.out.println("response = " + response);
    }
}

출력된 request, response 객체 살펴보기

request = org.apache.catalina.connector.RequestFacade@6fefd385
response = org.apache.catalina.connector.ResponseFacade@63e098c2

톰캣 라이브러리가 출력된다.

request 객체로 query parameter 읽어오기

@WebServlet(name = "Servlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String id = request.getParameter("id");
        System.out.println("id: "+ id);
    }
}

0개의 댓글