본문 바로가기

Servlet&JSP

008 - 서블릿 객체 생성과 실행 방법

지난 번(007)에 만들었던 class 파일은

\WEB-INF(없으면 만들어야 함.)\classes <- 폴더 안에 넣어야 함.

(그런데 만약, 서블릿 클래스를 만들 때 패키지가 있었다면,

classes 폴더 안에 패키지 폴더를 만들고 그 안에 넣어야 함.)

 

\WEB-INF : 서버쪽에서만 사용할 수 있음.

                클라이언트 측에서 이 폴더 안쪽을 들여다 볼 수 없고, 요청할 수도 없음.

                비공개 영역에 클래스 파일을 넣음.

 

이걸 사용자가 요청할 수 있게 하는 방법

: 톰캣에서 URL로 사용자의 요청을 받고, 요청 받은 것과 매핑된 서블릿 코드를 실행하여 돌려주는 방식.

 

http://localhost:8080/nana.txt

http://localhost:8080/WEB-INF/nana.txt

동일한 파일을 두 곳에 넣었을 때 위의 링크는 실행되는데, 아래 링크는 404가 발생.

실제로 파일이 없어서가 아니라, WEB-INF 폴더는 절대로 외부에서 요청할 수 있는 디렉토리가 아니기 때문.

그래서 설정, 프로그램 코드 등의 경우 이 폴더 안에 넣음.

 

WEB-INF 폴더 안에 있는 web.xml 파일을 편집. 아래의 내용을 추가한 후, 톰캣 재실행.

 

<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>

 

http://localhost:8080/hello

실제로 hello라는 파일이 있는 게 아니기에, 요청을 받은 웹 서버는 파일을 찾아보고 없어서 WAS에 넘기면

WAS는 자신의 매핑 정보를 찾아서 hello가 존재함을 알고 그것에 맞는 서블릿 코드를 실행함.