package hello.servlet;
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(urlPatterns = "/test")
public class TestServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("TestServlet.service");
resp.getWriter().println("test");
}
}
이 코드는 Java Servlet을 사용하여 웹 애플리케이션에서 HTTP 요청을 처리하는 간단한 예제입니다.
Servlet은 HTTP 요청을 처리하고 HTTP 응답을 생성하는 Java 클래스입니다. 이 예제에서는 TestServlet이라는 클래스가 HttpServlet을 상속받아 구현되었습니다.
@WebServlet 어노테이션은 해당 서블릿이 어떤 URL 패턴으로 요청을 처리할지를 지정합니다. 이 예제에서는 "/test" URL 패턴을 사용합니다.
service() 메서드는 HTTP 요청을 처리하는 핵심 메서드입니다. HttpServletRequest 객체는 HTTP 요청에 대한 정보를 포함하고 있으며, HttpServletResponse 객체는 HTTP 응답을 생성하기 위한 메서드를 제공합니다.
이 예제에서는 service() 메서드가 호출될 때 "TestServlet.service"라는 문자열이 콘솔에 출력되고, "test"라는 문자열이 HTTP 응답으로 전송됩니다.
따라서 이 코드를 실행하면 브라우저에서 http://localhost:8080/test를 요청하면 "test"라는 문자열이 출력됩니다.
Servlet은 Java 언어를 이용하여 웹 어플리케이션의
동적인 처리
를 담당하는 서버 측 프로그램입니다. Servlet은 클라이언트의 요청을 처리하고, 서버에서 실행되며, 서버 측에서 동작하기 때문에 서버에서 필요한 작업을 처리할 수 있습니다.Servlet은 HTTP 프로토콜을 기반으로 동작하며, HTTP 요청에 대한 처리와 HTTP 응답에 대한 생성을 담당합니다. Servlet은 웹 서버와 웹 애플리케이션 서버에서 동작할 수 있습니다.
Servlet은 다음과 같은 특징을 가집니다.
- 동적인 처리
Servlet은 클라이언트의 요청에 따라 동적으로 처리할 수 있습니다. 이를 통해 동적인 데이터를 생성하거나, DB와 연동하여 데이터를 처리하고, HTML 문서를 생성할 수 있습니다.
- 서버 측에서 동작
Servlet은 서버 측에서 동작하므로, 클라이언트 측에서 어떠한 동작도 필요하지 않습니다. 서버 측에서 필요한 작업을 처리하고, 그 결과를 클라이언트에게 전달합니다.
- 다양한 프로토콜 지원
Servlet은 기본적으로 HTTP 프로토콜을 지원하며, HTTPS, FTP, SMTP 등 다양한 프로토콜도 지원할 수 있습니다.
- 확장성
Servlet은 인터페이스를 이용하여 개발되며, 다른 인터페이스를 상속받아 확장할 수 있습니다. 이를 통해 다양한 기능을 추가하거나, 라이브러리를 이용하여 보다 높은 수준의 기능을 제공할 수 있습니다.
- 보안성
Servlet은 웹 애플리케이션의 보안을 강화할 수 있는 다양한 기능을 제공합니다. 예를 들어, 인증(Authentication)과 권한부여(Authorization) 기능을 제공하며, 보안적으로 안전한 데이터 전송을 위한 SSL(Secure Sockets Layer) 기능을 지원합니다.