서블릿 개발하기 연재목록

#1 개발환경 구축 (https://opensrc.tistory.com/180?category=475522)

#2 프로잭트 생성 (https://opensrc.tistory.com/181?category=475522)

#3 첫번째 JSP 파일 만들기 (https://opensrc.tistory.com/182?category=475522)

#4 첫번째 서블릿 만들기 (https://opensrc.tistory.com/183?category=475522)

#5 포스트 요청을 처리하는 서블릿 만들기 (https://opensrc.tistory.com/203?category=475522)

#6 GET/POST 요청과 함께 파라메터 전달 하기 (https://opensrc.tistory.com/204?category=475522)

#7 Servlet 들여다 보기 (https://opensrc.tistory.com/206?category=475522)

===========================================================




지난편에서 서블릿 개발을 위한 이클립스 + 톰켓 기반의 개발 환경 설정을 살펴보았습니다.

이번에는 설치한 개발환경에 프로잭트를 생성하고 간단한 서블릿을 만들어서 서버에 올려서 실행하는 것까지 진행 해 보도록 하겠습니다.


1. Dynamic Web Project 생성

이클립스 메뉴 File > New > Other... 선택

[Next >] 클릭


원하는 이름으로 Project name을 입력합니다.

Dynamic web module version이 3.1 인것을 기억하세요.

[Next >] 클릭


Default out folder 를 build\classes => WebContent\WEB-INF\classes 로 변경합니다.

모든 WAS(Web Application Server)에서 Java 소스가 컴파일 되어 배치되야 하는 곳은 Context Root 아래에 WEB-INF\classes 입니다.

아직 생성되지는 않았지만 미리 경로를 잡아주도록 하겠습니다.

[Next >] 클릭


Context root 를 / 로 변경하고, 기본 web.xml 을 생성 하도록 'Generate web.xml deployment descriptor' 를 체크 한다.

하나의 WAS 인스턴스에서 여러개의 Context를 실행하는 경우 Context root 를 각각 다르게 주어야 하지만 우리는 한개만 실행 할 것이르모 / 변경했습니다.

Context root를 특별한 경로로 지정한 경우 브라우져로 접근 할 때 해당 경로를 입력해야 접근 가능합니다.

[Finish] 클릭


2. 프로잭트 Encodeing 변경

전편에서도 언급했지만 최근 Java Web Application은 인코딩이 UTF-8이 기본으로 자리잡은지 오래되었습니다.

이상하게도 윈도우용 이클립스는 최신버전도 2byte 한글을 디폴트로 설정합니다. 나중에 변경해도 큰 문제는 없지만 미리 확인을 하고 넘어가는게 좋습니다.

Project Explorer에서 생성한 프로잭트를 오른쪽 마우스 클릭 > Properties 클릭

좌측에서 Resource 선택, Text file encoding 아래에 Inherited from container (MS949) 에 선택되어 있는 것을 Other로 변경 하고 우측 콤보박스를 UTF-8로 변경

[Apply] 클릭

나머지 내용등은 지금 부터 들여다 볼 필요가 없다고 생각되어 차자 필요할 때 다시 확인하거나 설명 드리도록 하도록 하겠습니다.

2018년 01월 17일 추가

기본 한글이 MS949로 잡히는 이유를 추측해보면... 

윈도우 커맨드창에서 java -XshowSettings:properties -version 명령을 쳐보면

sun.jnu.encoding = MS949

이런 설정이 나옵니다.


UNIX 계열에서 같은 명령을 쳐보면

sun.jnu.encoding = UTF8

이렇게 나옵니다.


저걸 바꿀 수 있는지는 나중에 좀 더 알아 보도록 하겠습니다.


2. 프로잭트 구조 살펴보기

프로잭트가 생성되면 왼쪽 Project Explorer 에서 아래 그림과 같은 구조가 보입니다.

다른 것들은 차차 설명하기로 하고

중요한 부분은

Java Resources > src : Java 클래스의 Source가 패키지 구조에 마춰 배치 됩니다.

Java Resources > Libraries : 추가된 라이브러리들이 표시됩니다.

WebContent : 위 설정에서 Context root 와 매핑해준 WebContent 입니다.

외부에서 http://localhost/~ 로 접근 되는 위치입니다.

WebContent\WEB-INF : Java Web Applicatin 에서 꼭 필요한 디렉토리 입니다. 여기에 web.xml도 있고 컴파일된 java 클래스들이 배치되는 classes 디렉토리도 있고 외부 라이브러리들이 배치되는 lib 디렉토리도 여기에 존재 합니다.

WebContent\WEB-INF\web.xml : 향후 우리가 친숙해져야 할 파일입니다. Java 기반의 Web Applicatiaon의 기본적인 특성을 여기에 모두 기술 합니다. 새로 생성하는 서블릿역시 여기에 등록 하고 외부에서 접근할 URI를 매칭해줘야 합니다.

프로잭트를 생성 할 때 마지막에 Generate web.xml deployment descriptor를 체크 해주었기 때문에 기본적인 내용이 기술된 web.xml이 생성되어 있습니다.

현재는 Servlet 3.1 스펙을 이용하겠다는 표시로 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd 내용 정도만 확인하시면 될 것 같습니다.


이정도만 이해하시고 나머지는 차자 기회가 되면 설명하도록 하겠습니다.


3. 서버 설정

Java Web Application을 실행하기 위해서는 Java Web Application Server가 필요합니다. 줄여서 WAS 라고 부르기도 하고 톰켓같은 경량서버는 Servlet Container라고 부르기도 합니다.

우리는 이미 전 회차에서 Apache Tomcat v8.0을 사용하기 위해 다운로드 받아놓았습니다.

그것을 우리가 만든 프로잭트에서 사용할 수 있도록 설정을 해보겠습니다.

이클립스 메뉴 Window > Show view > Other... 클릭

Server > Servers 선택

[Open] 클릭


하단의 Servers 텝에서

No Server are available. Click this link to create a new server... 를 클릭합니다.


이전 회자에서 다운받은 Tomcat 8.0이 기본적으로 선택되어 표시됩니다.

[Next >] 클릭


우리가 생성한 프로잭트가 좌측에 표시됩니다.

더블클릭 하거나 [Add >] 버튼을 클릭하면 아래 화면처럼 우측으로 이동합니다.

[Finish] 클릭


아래 그림처럼 하단의 Servers 텝에 Tomcat 서버가 사용할 수 있는 상태로 활성화 되었습니다.

Project Explorer 에도 우리가 추가한 프로잭트 외에 Servers 트리가 하나 생겼습니다.


서버 설정을 변경하기 위해서 Servers 텝에서 추가한 서버를 더블클릭 하여 서버 설정을 확인합니다.


General Information 섹션에 Open launch configuration 클릭


맨마지막 Common 텝을 선택하고

Encoding을 Default - inherited (MS949) 에서

Other 로변경하고 UTF-8로 선택합니다.

[Apply] , [OK] 클릭


아래 그림처럼

① HTTP/1.1 Port를 : 8080 -> 80으로 변경한 후 

② Save (Alt + S)

③ Close

후에 콘솔을 확인하기 위해 아래처럼 Servers 텝을 Project Explorer 텝 아래로 드래그 해서 옮기면 편하게 사용 할 수 있습니다.(선택사항)


4. 서버 실행

톰켓 디버그 모드로 실행 버튼

톰켓 실행 버튼

개발 할 때는 디버그 모드로 사용하는게 편리합니다.

디버그 모드로 실행하도록 하겠습니다.


하단에 console 텝이 생기면서

붉은색 로그들이 주르륵 나옵니다.

맨마지막에 

정보: Server startup in 3340 ms

이 메시지가 나오면 정상적으로 톰켓이 가동된 것입니다.


아직 아무것도 만들지 않았기 때문에

브라우저에서 http://localhost 라고 입력하면 404 Not Found 에러가 발생합니다.

Stop 버튼을 눌러서 종료 하거나 위에서 설명한 디버그, 시작 버튼을 눌러 재시작 할 수 있습니다.



다음 회에서는 간단한 jsp 파일과 servlet 파일을 만들어서 호출해 보도록 하겠습니다.

+ Recent posts