자바 웹 어플리케이션에 Servlet 등록 & doGet( ) 메서드 작성 & Servlet 실행
Ben의 프로그램2023. 7. 13. 22:07
728x90
자바 웹 어플리케이션에 Servlet 등록하기
이번 시간에는 저번 시간에 만들었던 자바 웹 애플리케이션에 서블릿을 추가해보도록 하겠습니다. 서블릿은 웹 URL 을 처리하는 프로그램이라고 생각하시면 됩니다.
이번 시간의 우리의 목표는 웹 브라우저에 위와 같이 주소를 입력하면 실제로 HelloServlet 이라는 응답 문구가 보이도록 하는 것입니다.
프로젝트 우클릭 후 New 를 클릭하면 아래에 Servlet 이 있는 것을 확인할 수 있습니다. 해당 메뉴를 클릭합니다.
Package 에는 examples 를 입력했고 클래스 이름으로는 HelloServlet 이라고 입력했습니다.
Next 를 클릭하면 위와 같은 화면이 나오는데요. 여기에서 가장 중요한 것은 URL mappings 부분입니다. 이 부분은 WAS 에서 해당 서블릿이 실행될 주소를 나타내는데요. 기본적으로 클래스이름이 입력되어 있는 것을 확인할 수 있습니다.
기본적으로 Tomcat 의 주소 구조는 위와 같습니다. localhost:8080 포트를 사용합니다. 이어서 프로젝트 이름과 URL Mapping 값이 주소로 사용됩니다.
Next 를 누르면 위와 같은 화면이 나옵니다. 여기서 일단 다양한 메서드들이 있는데요. 우리는 화면에 출력만 할 것이기 때문에 doGet 만 남기고 나머지는 체크를 해제합니다.
화면 출력을 위해 Servlet 의 doGet( ) 메서드 작성하기
Finish 를 누르면 다음과 같은 화면이 출력됩니다. 위와 같이 서블릿이 생성된 것을 확인할 수 있습니다. 웹 브라우저가 Get 메서드 방식으로 요청을 보낼 때 서블릿의 doGet 메서드가 호출됩니다. Get 메서드는 브라우저가 서버에게 문서를 요청할 때 사용하는 방식입니다. 코드가 굉장히 복잡해 보이는데요. 좀더 자세한 동작 방법은 서블릿 동작과정에서 배워보도록 하고 지금은 우리의 목표인 출력에 초점을 맞춰서 진행을 해보는 것으로 하겠습니다. 실제로 Get 요청이 브라우저로부터 왔을 때 작동하는 코드는 서블릿의 doGet 메서드입니다. 그러니까 우리가 화면에 출력하고자 하는 내용을 doGet 메서드 안에 담아주어야 한다는 것이죠.
화면에 출력할 내용을 브라우저에게 전달해주기 위해서는 우선 response 라는 응답 결과를 보내줄 객체의 타입을 정해주어야 합니다. 그래야 브라우저가 해석을 잘 할 수 있습니다.
브라우저에게 response 의 Type 을 알려주었다면 이제 실제로 어떤 내용을 보낼지 담아주어야 하는데요. 자바 입출력을 배워보신 분이라면 PrintWriter 객체를 기억하실 겁니다. PrintWriter 는 출력 시 가장 많은 메서드를 가지고 있기 때문에 자주 사용하게 됩니다. reponse.getWriter( ) 로 PrintWriter 객체를 반환해주고 반환 받은 변수를 통해서 print 해주면 실제로 웹에 해당 내용이 작성되게 됩니다. 웹에 작성하는 것인 만큼 당연히 테그를 작성해주어야겠죠. h1 태그로 작성하고자 하는 내용을 감싸주었습니다.
서블릿 실행하기
작성한 서블릿을 실행할 때는 서블릿 우클릭 후 Run As - Run on Server 를 클릭하면 됩니다.
그럼 처음 프로젝트를 생성할 때 설정하였던 WAS 가 보이게 됩니다. 항상 이 WAS 를 이 프로젝트에서 사용할 것이기 때문에 체크박스를 체크하고 Finish를 누르면 다음과 같이 웹 브라우저가 실행됩니다.
firstweb 프로젝트의 HellloServlet 이 실행되어 내가 작성한 HTML 이 화면에 출력되는 것을 볼 수 있습니다. 놀랍지 않나요? 정말 우리가 서버를 구축해서 원하는 화면을 출력하게 되었습니다. 저는 무척이나 기쁩니다! 설레구요. 여기까지 공부하시느라 수고하셨고 첫 서버를 구축해서 웹 프로젝트를 만드신 것, 서블릿으로 원하는 화면을 출력하신 것 축하드립니다.