* 본 글은 [뉴렉처]의 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 파일이 존재
- 정상적으로 컴파일이 됨
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] Servlet 문자열 출력 (0) | 2023.05.23 |
---|---|
[Servlet&JSP] 서블릿 객체 생성과 실행 (0) | 2023.05.23 |
[Servlet&JSP] Context 추가하기 (0) | 2023.05.23 |
[Servlet&JSP] 웹 문서 추가하기 (0) | 2023.05.23 |
[Servlet&JSP] 실행환경 구축 - Tomcat 설치 (0) | 2023.05.23 |