본문 바로가기
☕ Java 웹 프로그래밍/Servlet & JSP

[Servlet&JSP] 서블릿 프로그램 만들기

by 일단연 2023. 5. 23.

* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.

 

2020 Servlet&JSP 프로그래밍

 

www.youtube.com

 

 서블릿 프로그램 만들기 

Servlet 생성: 서버 어플리케이션을 만드는 것

  • 웹 서버 응용 프로그램 = Servlet
  • 서버 어플리케이션은 클라이언트의 요청에 따라 Servlet(Server Application Let)을 내보내 실행시키고 그 결과를 전달하면 프로그램이 끝남
  • 서버 어플리케이션은 웹이라는 환경에서 실행되기 때문에 기능별로 코드가 나뉘어 있으며, 필요에 따라 기능별로 코드가 선택적 실행됨 (요청이 오기 전까진 로딩되지 않음)
  • 필요에 따라 로딩될 수 있도록 Server Application이 조각나있음 = Server Application Let > Servlet (서버 어플리케이션 조각)
  • 지금까지 만들었던 자바 어플리케이션은 main( )메소드로 만들었지만, 이제부터는 service( )메소드로 만듦

서블릿 코드 작성과 컴파일

  • 서블릿 클래스
    • 모든 서블릿 클래스는 WAS에 의해 로딩, 실행되고 결과를 돌려줌
    • 서블릿 클래스는 HttpServlet 추상 클래스를 상속하며, HttpSerlvet 클래스의 **service( )**메소드를 오버라이딩해 사용
    • HttpServlet 추상클래스를 상속받는 클래스는 모두 서블릿 클래스
      • 예: 클래스명이 Nana라면 이 클래스는 Nana 서블릿이 됨
    • HttpServlet 추상클래스라는 자료형식으로 서블릿을 참조
    • 클래스명은 기능을 참고해 정하면 됨
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class 클래스명 extends HttpServlet
{
  public void service(HttpServletRequest request
                      , HttpServletResponse response)
                      throws IOException, ServletException
  {
    System.out.println("hello Servlet");
  }
}

메모장, JDK, Tomcat으로 서블릿 코드를 작성하고 컴파일하기

  • 위의 코드에 클래스명을 넣어 메모장 형식으로 저장
  • cmd에서 코드가 있는 파일로 이동 (예: cd c:\dev\jsp)
  • dir 명령어를 입력해 어떤 파일이 들어있는지 확인
  • javac Nana.java 명령어를 입력해 컴파일을 시도하면 서블릿에서 오류 발생
    • JDK에 서블릿 라이브러리가 존재하지 않기 때문
  • javac만 입력해 javac의 설명 확인
    • -class-path <path>, -classpath <path>, -cp <path> Specify where to find user class files and annotation processors
    • 클래스/라이브러리가 존재하는 경로를 써줘야만 소스파일을 컴파일하다가 관련 클래스/라이브러리를 찾는 데에 문제가 없음
  • [javac] [-cp] [servlet-api.jar의경로] [서블릿 파일] 명령어 입력
    • 예: javac -cp C:\DEV\apache-tomcat-9.0.75\lib\servlet-api.jar Nana.java
    • Tomcat 홈 디렉토리>lib>servlet-api.jar를 이용할 것이기에 해당 파일의 경로를 이용
    • 정상적으로 컴파일이 되면 아무 결과도 뜨지 않음
  • dir 명령어를 다시 입력하면 Nana.java파일과 컴파일된 파일인 Nana.class 파일이 존재
    • 정상적으로 컴파일이 됨