1. servlet 이란?

앞선 포스팅에서는 이클립스에서 Dynamic Web Project를 생성하고 (자바 웹 어플리케이션)

해당 프로젝트에서 HelloServlet이라는 서블릿 클래스를 작성해 보았습니다.

 

작성된 서블릿은 이클립스 내부에서 설정한 runtime (즉, 우리는 톰캣이라는 WAS를 설정했죠!) 톰캣에 의해서 동작이 됩니다.

 

그 이후 웹브라우저를 이용해서 톰캣 서버에 URL 요청을 보내고

HelloServlet이 실행되는 결과를 웹 브라우저로 확인해 보았습니다.

 

과정을 정리하자면,

Dynamic Web Project(eclipse) > servlet class > 톰캣(WAS)서버에 URL요청 > servlet실행

입니다.

 

여기에서 우리가 만든 프로젝트가 자바 웹 어플리케이션 입니다.

웹 어플리케이션 이란 인터넷으로 연결된 웹 환경에서 사용자들 간의 연결을 통해 서비스를 제공하고 제공받는 어플리케이션을 의미합니다. 

우리가 사용하는 쇼핑몰, 블로그, 카페등이 이에 해당합니다.

 

* 클라이언트가 웹브라우저의 주소창이나 하이퍼링크, 서브밋 버튼 등을 사용하여 서비스를 (요청)하면 서버쪽에서 그 요청 정보를 처리하여 결과를 HTML 형태로 사용자의 웹 브라우저에 보내줍니다.(응답)

 

웹 어플리케이션의 구성요소

클라이언트 서버
웹브라우저 웹서버
JavaScript 웹 어플리케이션 서버(WAS)
CSS 데이터베이스 시스템(DBMS)
HTML 미들웨어

모두 앞서서 정리했던 내용 입니다.

 

WAS에 의해서 동장하는 웹 어플리케이션은 폴더 구조를 잘 지켜주어야합니다.

 

자바 웹 어플리케이션의 폴더 구조

 

Servlet은!!

자바 웹 어플리케이션의 구성요소중 동적인 처리를 하는 프로그램의 역할을 수행합니다.

서블릿의 특징을 살펴보자면..

- 서블릿은 WAS에서 동작하는 Java클래스

- 서블릿은 HttpServlet 클래스를 상속받아햐 함

- 서블릿과 JSP로부터 최상의 결과를 얻으려면, 웹 페이지를 개발할 때 JSP와 서블릿을 조화롭게 사용해야함

  (ex : 웹 페이지를 구성하는 html은 jsp로 표현, 복잡한 프로그래밍은 서블릿으로 구현)

 

2. Servlet 작성 방법

servelt 작성 방법은 버전에 따라 달라집니다.

 

버전에 따른 Servlet 작성 방법

1. Servlet 3.0 spec 이상에서 사용하는 방법

  • web.xml 파일을 사용하지 않습니다.
  • 자바 어노테이션(annotation)을 사용합니다.
  • 앞에서 실습했던 first web에서 사용합니다.

2. Servlet 3.0 spec미만에서 사용하는 방법

  • servlet을 등록할 때 web.xml 파일에 등록합니다.

3.0이상 버전의 servlet작성 방법부터 살펴보겠습니다.

프로젝트 만들고 서브렛 3.1버전을 선택해서 만듭니다.

저번 포스팅에서와 마찬가지로 doGet 메서드 부분을 고쳐서 작성해보겠습니다.

html은 enter입력으로 줄바꿈이 안되기 때문에 br태그를 사용해서 줄바꿈 해줍니다.

 

16번째 줄에서 서블릿 클래스가 HttpServlet을 상속받아서 작성한것을 확인할 수 있습니다.

만약 상속 받지 않았다면, response와 같은 메소드를 직접 만들어서 사용해야겠죠..??

 

 

3.0이상의 버전 서블릿은 annotation을 사용합니다. 

형광펜 친 부분을 바꾸면 어떻게 될까요?

바꾸기전의 url입니다.

 

 

 

 

 

 

 

 

 

 

 

 

바꾼 후의 url입니다.

이렇게 3.0이상의 버전은 자바 annotation을 사용해서 servlet을 생성하는 것을 살펴보았습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

3.Servlet life-cycle

전에 만들었던 firstweb 프로젝트의 example 패키지에 LifeCycleServlet을 하나 만들어줍니다.

위와 같은 설정으로 세개의 메소드를 오버라이딩 할 수 있게 설정하고 finish합니다.

 

이렇게 코드를 오버라이딩 해줍니다.

 

실행 시키면 다음과 같이 콘솔창에 뜹니다.

처음 실행을 시킨것이기 때문에 메모리에는 해당 서블릿 객체가 없는 상태였습니다.

그래서 servlet을 생성한 후, init과 service를 호출한 것을 확인할 수 있습니다.

 

브라우저를 새로고침하면 이미 메모리에는 servlet객체가 있기 때문에 다시 생성하지 않고,

service만 다시 호출한 것을 확인할 수 있습니다.

 

!!참고!!

Servlet 생명주기

  • WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인합니다.
  •  if (메모리에 없음) {
     - 해당 서블릿 클래스를 메모리에 올림
     - init() 메소드를 실행
    }
     - service()메소드를 실행
  • was가 종료되거나, 웹 어플리케이션이 새롭게 갱신될 경우 destroy() 메소드가 실행됩니다.

 

위의 내용에서 우리가 실제로 동작을 구현할 때에는 service메소드에 구현하면 되겠구나..!!라는 것을 알 수 있습니다.

 

 

 

 

 

 

 

1. 자바 웹 어플리케이션 생성하기

eclipse에서 File > New > Dynamic Web Project를 클릭합니다.

 

project name을 입력 후, New Runtime을 클릭합니다.

저는 이미 프로젝트를 만들어서 Tomcat을 설정해 놓은 상태라 8.0버전으로 설정되어 있습니다.

 

8.0버전을 선택 후, Next를 클릭합니다.

 

Browse를 클릭 후, Tomcat을 설치한 경로를 입력해 줍니다.

 

여기서 문제가 발생합니다!!

 

설치한 Tomcat은 8.0버전인데 eclipse는 8.0버전까지밖에 지원을 하지 않는다고 합니다.ㅜ

 

그래서 저는 이걸 https://sarc.io/index.php/tomcat/582-eclipse-tomcat-8-5-x

 

Eclipse 에서 Tomcat 8.5.x 사용하기

Technical Note 정보 Tommy 님이 작성하신 글입니다. 카테고리: [ Apache Tomcat ] 게시됨: 10 August 2016 작성됨: 11 August 2016 최종 변경: 07 September 2019 조회수: 30523 'Eclipse에서 Tomcat 8.5.x 사용하기' 에 대해 정리 하려다 보니..  Tomcat 8.5가 나오게된 history 도 간단히 정리해야 될듯한데.... ..  Tomcat 8,5.2까지는 beta

sarc.io

이 블로그를 참고해서 고쳤습니다. 저는 야매같지만 첫번째 방법으로 수정했습니다.

잘돌아갑니다.ㅎㅎ

 

2. 자바 웹 어플리케이션 작성

방금 만든 웹 어플리케이션을 클릭 후, New > Servlet을 클릭합니다.

 

다음과 같이 패키지와 클래스 이름을 입력하고 next를 클릭합니다.

 

다음과 같은 창이 뜹니다.

여기에서 제일 중요한 부분은 URL mappings입니다.

이 HelloServlet클래스가 WAS에 배포될 때 사용할 이름을 지정한 부분입니다.

지금은 eclipse가 자동으로 생성한 이름으로 설정되어 있는 상태입니다.

 

기본적으로 URL은 다음과 같은 규칙으로 생성됩니다.

http://localhost:8080/{프로젝트이름}/{URL Mapping값}

따라서 위와같이 어플리케이션을 만든다면 URL은 

http://localhost:8080/firstweb/HelloServlet 이렇게 되겠죠?

 

그다음 next를 누르고

doGet만 체크되게하고 finish해줍니다.

 

기본 코드에서 doGet 메소드를 변경해 줍니다.

 

이제 이 코드를 실행해봅시다.

 

src > servlet파일 > 우클릭 > run as 를 클릭해 줍니다.

항상 Tomcat을 사용할 것이기 때문에 밑에 always....체크박스를 체크해줍니다.

 

그후 실행하면

이렇게 잘 돌아갑니다!!!! :)

 

 

'WEB > BoostCourse' 카테고리의 다른 글

[부스트코스]2_1JavaScript  (0) 2020.03.11
[부스트코스]Servlet 이란?  (0) 2020.03.06
[부스트코스]eclipse, Tomcat설치  (0) 2020.03.05
[부스트코스]1_2&1_3 HTML과 CSS  (0) 2020.02.27
[부스트코스]01_Web개발의 이해  (0) 2020.02.14

1. eclipse 설치

eclipse는 이미 설치되어 있어서 따로 설치할 필요 없었습니다.

perspective는 Java EE로 설정했습니다.

Java는 Java프로그래밍을 할때, JavaEE는 Java로 웹 어플리케이션을 만들때 더 유용한 perspective입니다.

 

2. Tomcat 설치

Apache Tomecat이란??

아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 세계에서 가장 많이 사용되는 WAS(Web Application Server)입니다.

 

자바를 이용하여 작성되는 웹 어플리케이션은 WAS가 있어야만 실행할 수 있습니다.

 

톰캣은 처음 사용해보는거라 다운 및 설치 과정을 적어보겠습니다.

 

http://tomcat.apache.org로 이동한 후 "Tomcat 8"을 선택합니다.

Tomcat 8버전은 JDK 7이상에서 동작하며 Servlet Spec 3.1을 지원합니다.

Tomcat 9버전은 JDK 8이상에서 동작하며 Servlet Spec 4.0을 지원합니다.

 

zip 파일을 다운 후, 압축을 해제하여 파일을 엽니다.

다운받은 파일이 이렇게 생성되어 있습니다. 이중, bin파일을 클릭합니다.

저는 window라 window버전으로 진행해 보겠습니다.

 

startup.bat파일을 실행시켜 줍니다.

 

그럼 cmd창이 띄워지고 뭔가 촤라라라락 실행됩니다.

우리가 할 것은 잠시 기다린 후, 새로운 브라우저를 켜고

주소창에 http://localhost:8080 나 http://127.0.0.1:8080를 입력해 들어가보는 것입니다.

 

만약 잘 동작한다면,

다음과 같은 창이 띄워집니다.

 

Tomcat을 종료하려면, 다시 bin폴더로 들어가서 shutdown.bat을 더블클릭합니다.

종료후 다시 위의 주소로 들어가면 "사이트에 연결할 수 없음"오류가 뜹니다.

 

저는 8080포트 서버에 접속할 때,

다음과 같은 오류가 발생 했습니다.

 

 

https://monny.tistory.com/42

위의 티스토리에 오류 해결과정이 자세이 나와있어서 참고해서 오류를 수정했습니다.

 

 

+ Recent posts