본문 바로가기
뉴렉처 과정 기록 (Backend)/Servlet _JSP

04/06 Servlet 객체 생성과 실행

by yeonee3219 2021. 4. 12.

Servlet

 

 

톰캣 : WAS + 자바 어플리케이션을 개발할 때 사용되는 웹 서비스의 기능이 포함됐다 

 

 

 

 

문서를 만들어서 홈 디렉토리에 두고 웹 브라우저에 띄어보기!

 

 

 

 

 

 

 

 

사용자로부터 요청이오면 기본적으로 정적인 문서로 인식을 해서 디렉토리에서 찾아서 주게 된다

 

 

 

톰캣은 was의 기능이 더 중요

 

 

-> 웹 서버는 예약되어 있는 특정 폴더가 있고 , 그 특정폴더에 문서를 저장을 하고 

 

다른 원격에 있는 컴퓨터 브라우저를 통해서 서버의 주소와 함께 리소스 이름을 적어주면 그것을 돌려주는구나!

 

 

 

 

 

 

 

서블릿은 서버 어플리케이션을 만드는 것이다

 

서버 어플리케이션은 기능별로 코드가 나눠져있고 필요에 따라 기능별로 선택적으로 실행될 수 있도록 만들어진 것 

(웹이라는 환경에서 실행되야 하기 때문에)

 

 

 

그때그때 요청한 것만 찾아서 돌려주기 위해 기능들이 조각나 있다 -> 그래서 서블릿이라 부름

 

그렇다면 , 모든 것을 다 한번에 개발할 필요없이 필요한 것을 조각내서 하나씩 만들면 되겠네 

->어떻게?

(그 동안은 메인함수에 주르륵 코드를 써내려갔지만 이제는 서비스 중심으로 함수를 만들면 되겠다)

 

 

 

 

 

 

 

 

 

 

 

was가 내가 만든 코드를 실행하게 하고 싶다

 

 

 

 

만들게 되는 모든 서블릿클래스들은 WAS에 의해서 로드가 되고 실행되고 결과를 돌려주게 된다.

 

WAS 입장에서는 클래스명 별로 중요하지 않고 , 약속돼 있는 인터페이스명이나 추상클래스명을 통해서 그 자료형식으로 서블릿을 참조하게 되어있다 

 

위의 사진은 extends인 것을 보니 추상클래스겠다. 그것을 통해서 호출하는 함수는 정해져있는 서비스 함수이다

 

 

 

 

 

이름은 별로 중요하지 않으니 그냥 Nana라 하고..

 

서비스 기능을 재정의(override)

 

service 는 반드시 HttpServlet을 통해서 구현하게 되는 약속되어있는 이름이다  

 

Nana Servlet이라 한다

 

 

 

 

 

 

 

메모장 jdk 톰캣 으로만 (이클립스 없이)실행해보기

 

 

메모장으로 옮겨서  컴파일하고 사용자 요청하면 실행할 수 있도록 환경을 구성해보자

 

* => 앞의 것 안에 있는 클래스들을 의미

 

 

 

 

저장 후 cmd창에서 javac Nana.java 해주었다

 

서블릿이라고 하는 라이브러리를 이해할 수 없다는 에러

 

서블릿 라이브러리는 jdk에 포함되지 않았기 때문에 그 라이브러리가 존재하는 곳을 지정을 해주어서 컴파일 해야겠다

 

위치 찾기

 

 

 

주소 넣어주니 컴파일됨

 

 

컴파일된 것을 볼 수 있다

 

-> 어떻게 실행하게 할 것인가?

 

 

 

 

 

 

예약되어 있는 곳이 있다 / 위 사진대로 만들어야 됨 

약속되어있기 때문에 그대로 넣어줘야 클래스파일을 찾을 수 있음

 

 

 

 

컴파일 된것을 저 대로 옮기자

 

root안에 폴더들 만들어서 옮김

 

 

 

사용자는 이렇게 요청할 수 없다  / 서버 쪽에서만 사용할 수 있다 / 사용자는 볼 수 없어  

 

그렇다면 어떻게 요청?

 

저 위의 내용은 톰캣만 알고 

 

톰캣한테 객체화해달라고 부탁해야 됨

 

 

 

 

사용자가 요청할 이름을 따로 매핑해줌

 

사용자에게 제공되는 서블릿이름은 Nana가 아닌 /hello임

사용자가 hello로 요청하면 톰캣이 그 요청에 해당되는 서블릿클래스를 찾아서 실행해줌

 

 

 

 

 

추가

 

이름을 /min으로 매핑해주었다

 

 

 

서버 열기

 

매핑된 것을 썼다 -> 서블릿코드를 실행한 것임

-> Nana파일 보면 서버에 헬로 서블릿 쓰라고 하는 함수가 있기 때문에 그대로 실행된 것

 

 

 

 

 

 

www.youtube.com/watch?v=qfGbsEdMaV4&list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd&index=5

www.youtube.com/watch?v=jp7vtbLin-s&list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd&index=8

www.youtube.com/watch?v=mjyygG7zp1c&list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd&index=7

 

 

 

 

다음시간에는 클라이언트화면에서 보이게 해주자