뉴렉처 학습(서블릿/JSP) 7강 ~ 8강
#7일 처음으로 서블릿 프로그램 만들어보기
*서블릿 클래스 만들기
- 서블릿을 만든다는 것은 서블릿 서버 어플리케이션을 만든다는 것을 의미한다.
- 사용자의 요청에 따라 서블릿(조각나 있는 서버 어플리케이션) 제공이 이루어져야 한다.
- 자바는 main( ) 함수를 시작으로 프로그램을 만드는데, 서블릿은 service( ) 함수를 통해 프로그램을 만든다.
- WAS는 약속되어있는 인터페이스 또는 추상 클래스 자료 형식으로 서블릿을 참조하게 된다.
- 서블릿 진행 시 service 함수를 자바의 main 함수처럼 생각하고 진행하면 되며, 기능 단위로 나눠서 클래스명을 생성하면 된다.
*컴파일 방법
- 메모장을 통해 아래 코드 작성 후 파일명.java로 저장 > cmd 콘솔 창 실행 > 저장된 곳의 경로 ( c: > jsp ) 입력 > cd jsp 입력 > dir (파일명.java 확인) > 파일명.java 실행
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Nana extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
System.out.println("hello Servlet");
}
}
- 이때 서블릿 라이브러리 관련 오류 발생되는 것 확인.
- 톰캣 설치된 폴더 내 라이브러리(lib) 에 있는 서블릿.api 경로 확인 후 콘솔 창에서 javac -cp 경로\서블릿.api 파일명.java 입력 후 오류가 없는 경우 정상적으로 컴파일 된 것이며, 오류가 발생한다면 위에서 메모장에 작성한 코드에 오류가 없는지 확인하면 된다.
#8일 서블릿 객체 생성과 실행 방법
- 서블릿 클래스는 WEB-INF / classes 안에 위치해야 한다.
- 톰캣이 운영하는 홈 디렉터리 내 WEB-INF는 절대로 사용자에 의해 요청될 수 있는 디렉터리가 아닌 서버 쪽에서만 사용 가능한 곳이다. 절대로 클라이언트 쪽에서 안쪽 내용을 볼수도, 요청할 수 도없다. 해당 위치는 비공개 영역이다. )
*WEB-INF 내 파일을 사용자가 요청하는 방법
- 사용자가 웹서버+WAS에 요청시 사용되는 이름을 매핑하는 작업이 필요하다.
- 톰캣 설치된 위치에 가서 webapps > ROOT > WEB-INF > classes 폴더 생성 > 안에 파일명.class 복사
- startup 실행 > 브라우저로 localhost8080:/파일명.txt 열기 ( 파일명.txt 를 WEB-INF 내에 넣어둘 시 브라우저(웹)으로 열 수 없다. )
- WEB-INF 내 파일명.class 파일을 사용자가 요청할 수 있게 하려면.
- WEB-INF 내 web.xml 편집하여 아래와 같은 내용을 입력하면 실행 가능해진다 ( /hello 로드하면 Nana(실행할 서블릿 코드)를 실행하는 매핑 역할을 한다.)
<servlet>
<servlet-name>na</servlet-name>
<servlet-class>Nana</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>na</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
- 이후 startup 재 실행 및 브라우저 재 실행 하면 정상적인 작동 시에는 하얀 화면이 나오게 된다. (출력을 따로 설정해 두지 않았기 때문에 - 이때 콘솔로만 출력이 된다.)