Servlet
톰캣 : WAS + 자바 어플리케이션을 개발할 때 사용되는 웹 서비스의 기능이 포함됐다
사용자로부터 요청이오면 기본적으로 정적인 문서로 인식을 해서 디렉토리에서 찾아서 주게 된다
-> 웹 서버는 예약되어 있는 특정 폴더가 있고 , 그 특정폴더에 문서를 저장을 하고
다른 원격에 있는 컴퓨터 브라우저를 통해서 서버의 주소와 함께 리소스 이름을 적어주면 그것을 돌려주는구나!
서블릿은 서버 어플리케이션을 만드는 것이다
서버 어플리케이션은 기능별로 코드가 나눠져있고 필요에 따라 기능별로 선택적으로 실행될 수 있도록 만들어진 것
(웹이라는 환경에서 실행되야 하기 때문에)
그때그때 요청한 것만 찾아서 돌려주기 위해 기능들이 조각나 있다 -> 그래서 서블릿이라 부름
그렇다면 , 모든 것을 다 한번에 개발할 필요없이 필요한 것을 조각내서 하나씩 만들면 되겠네
->어떻게?
(그 동안은 메인함수에 주르륵 코드를 써내려갔지만 이제는 서비스 중심으로 함수를 만들면 되겠다)
was가 내가 만든 코드를 실행하게 하고 싶다
만들게 되는 모든 서블릿클래스들은 WAS에 의해서 로드가 되고 실행되고 결과를 돌려주게 된다.
WAS 입장에서는 클래스명 별로 중요하지 않고 , 약속돼 있는 인터페이스명이나 추상클래스명을 통해서 그 자료형식으로 서블릿을 참조하게 되어있다
위의 사진은 extends인 것을 보니 추상클래스겠다. 그것을 통해서 호출하는 함수는 정해져있는 서비스 함수이다
이름은 별로 중요하지 않으니 그냥 Nana라 하고..
service 는 반드시 HttpServlet을 통해서 구현하게 되는 약속되어있는 이름이다
메모장 jdk 톰캣 으로만 (이클립스 없이)실행해보기
메모장으로 옮겨서 컴파일하고 사용자 요청하면 실행할 수 있도록 환경을 구성해보자
저장 후 cmd창에서 javac Nana.java 해주었다
서블릿 라이브러리는 jdk에 포함되지 않았기 때문에 그 라이브러리가 존재하는 곳을 지정을 해주어서 컴파일 해야겠다
-> 어떻게 실행하게 할 것인가?
약속되어있기 때문에 그대로 넣어줘야 클래스파일을 찾을 수 있음
컴파일 된것을 저 대로 옮기자
사용자는 이렇게 요청할 수 없다 / 서버 쪽에서만 사용할 수 있다 / 사용자는 볼 수 없어
그렇다면 어떻게 요청?
저 위의 내용은 톰캣만 알고
톰캣한테 객체화해달라고 부탁해야 됨
사용자가 hello로 요청하면 톰캣이 그 요청에 해당되는 서블릿클래스를 찾아서 실행해줌
매핑된 것을 썼다 -> 서블릿코드를 실행한 것임
-> 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
다음시간에는 클라이언트화면에서 보이게 해주자
'뉴렉처 과정 기록 (Backend) > Servlet _JSP' 카테고리의 다른 글
04/13 Servlet 출력 형식(한글깨짐 문제 해결) (0) | 2021.04.13 |
---|---|
04/12 Servlet 어노테이션을 이용한 매핑 (0) | 2021.04.12 |
04/08 Servlet 문자열 입출력(response, request) (0) | 2021.04.12 |
04/07 Servlet 이클립스를 이용한 서블릿 프로그래밍 (0) | 2021.04.12 |
04/05 Servlet 환경 만들기 (0) | 2021.04.12 |