본문 바로가기

카테고리 없음

[Java Web_001] Tomcat과 서블릿 프로그램 작성

자바로 작성된 웹 프로그램이 많다.

 

사용자가 요구하는 내용이 동적인 문서를 요구하면 이 코드(서블릿)를 실행해야 하며 이것을 가능하게 해주는 것이 바로 Web Application Server이다.

 

그래서 자바 어플리케이션을 개발할 때 사용되는 Web service기능과 주된 기능인 Web Application Server 역할을 해주는 톰캣을 설치해 보았다.

 

내 톰캣은 이곳에 위치하였다.

 

여러가지 디렉토리가 있는데 내 방식대로 정리를 해보면

- bin : 톰캣을 가동시켜주는 batch파일과 응용프로그램들을 모아놓은 디렉토리

- conf : server.xml(WAS동작과 관련된 xml파일인데 조금 어렵다...)

- lib : servlet-api를 비롯한 JAR파일들을 모아놓은 라이브러리 디렉토리

- webapps : 특히 ROOT의 경우 반환되는 파일을 관리하는 디렉토리인가(이것도 조금 정리가 필요하다ㅠㅠ). context개념으로 이곳에 여러개의 디렉토리를 만들어 별개의 사이트를 관리하는 것도 이곳에서 가능

 

텍스트 파일을 ROOT의 하위에 위치시키고 톰캣을 가동시켰다.

 

인코딩이 깨진 괴상한 화면이 뜨지만 8080포트로 정상적으로 서버가 가동되었다는 뜻이다.

 

문제없이 텍스트파일을 찾아서 제공해준다.

나는 스마트폰이 있는데 같은 공유기를 사용하고 있어서 IPv4주소로 이 파일을 요청해도

이 파일을 받을 수가 있다.(나만 신기한가)

 

이런식으로 톰캣이 동작하는 것을 확인 할 수 있었다.

이제 본격적으로 서블릿 파일을 만들고 컴파일함으로써 객체를 생성하고 실행하는 것까지 해보자.

 

FirstServlet.java 파일을 만들었다. 컴파일을 시켜보니

컴파일 에러가 뜬다

이것은 javax.servlet.http가 존재하지 않아서이다. javax의 servlet관련 파일들은 JDK에 포함되어 있지 않기 때문에 직접 경로를 써줘야 import할 수 있다.

 

그러면 Tomcat의 lib디렉토리에 servlet-api.jar의 위치를 명시해주고 컴파일 시켜보자.

 

여기의 현재 path를 복사해서 컴파일 해주니

에러없이 성공하였다.

이제 이 클래스파일을 WEB-INF밑에 classes디렉토리를 만들고 넣어준다.

 

그리고 web.xml 파일에 

  <servlet>
      <servlet-name>cw</servlet-name>
      <servlet-class>FirstServlet</servlet-class>
  </servlet>

  <servlet-mapping>
      <servlet-name>cw</servlet-name>
      <url-pattern>/hello</url-pattern>
  </servlet-mapping>

를 추가해준다. 그리고 서버를 재기동 시켜주고 url로 요청을 하면

"Hello Servlet"이 출력된다.