본문 바로가기

Spring

서블릿 요청, 응답 예제. Hello Servlet.

반응형

서블릿의 동작 구조

  1. 클라이언트가 서버에 페이지(url)를 요청한다.
  2. 서버는 요청 url에 매핑되는 서블릿을 호출하면서 파라미터를 전달한다. 
  3. 서블릿이 실행되고 파라미터로 전달된 값을 처리하거나 데이터베이스와 연동한다.
  4. HTML과 데이터를 조합하여 재구성한 다음 클라이언트에 전달한다. 
  5. 웹 브라우저는 수신받은 HTML 내용(CSS, 자바스크립트 포함)을 해석해서 화면에 표시한다. 

 

예제를 통해 서블릿의 동작 구조를 알아보자.


 

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);
    }
}

사이트 url을 요청하면 반응하는 것을 확인할 수 있다. 

 


 

쿼리파라미터를 조회할 수 있다. 

 


 

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);
    }
}

 


클라이언트가 localhost:8080/hello로 요청을 보낸다. 서버는 요청 url에 매핑되는 서블릿을 호출한다. 서블릿을 실행하기 위해서는 서블릿 컨테이너가 필요하다. WAS라고 불리기도 한다. 

반응형