이클립스에서 dynamic web project를 만들고 싶으면 우 상단의 perspective에서 Java EE를 선택해야 한다.
Java EE 선택한 모습
이 상태에서 new project를 생성하면 목록에 Dynamic Web Project가 있다.
프로젝트 생성할 때 new runtime 누르고 사용할 was인 아파치 톰캣 8.5를 선택해 줘야 한다.
그리고 next 누른 뒤에 톰캣을 설치한 경로를 지정해 준다.
경로를 지정했을 때 install 이 활성화되어도 상관없다. (설치가 안되어서 install 하라는게 아니니 그냥 무시하고 진행해도 됨)
최초 생성 시에만 이렇게 하면 되고 그 뒤로는 한번 설정한 WAS가 기본을 지정된다.
servlet은 URL 요청을 처리하는 프로그램이다.
웹 프로젝트 우클릭 > new > servlet을 선택해서 만들 수 있다.
Class Name을 HelloServlet으로 지정하고 next를 누르자 URL mappings에 /HelloServlet으로 표시된 것을 확인할 수 있다.
이것이 이 클래스가 WAS에 배포될 때 사용할 이름이다.
프로토콜 / IP : 톰캣포트번호 / 프로젝트이름 / URLMapping 값
즉 이 URL 주소를 입력하면 우리가 작성한 코드가 실행되는 것이다.
다시 next를 눌러서 넘어가면 어떤 메소드를 서블릿에 포함해서 만들어줄지 묻는다.
웹브라우저가 GET 메소드 방식으로 서버에게 http request message를 보내면 서블릿의 doGet 메소드가 호출된다.
GET 메소드는 웹브라우저가 서버에게 문서를 요청할 때 사용하는 방식이다.
finish를 눌러서 서블릿을 생성해보자.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//response의 type
response.setContentType("text/html;charset=UTF-8");
//java.io.PrintWriter를 import 해줘야 한다. response.getWriter로 PrintWriter 객체 생성
PrintWriter out = response.getWriter();
//out.print로 화면에 출력
out.print("<h1>Hello Servlet</h1>");
}
doGet메소드를 다음과 같이 작성했다.
response.setContentType을 먼저 해준다.
그리고 java.io.PrintWriter를 import 한 후에 PrintWriter 객체를 생성한다.
out.print로 화면에 원하는 내용을 출력한다.
서블릿 파일을 우클릭하고 run as > run on server > WAS 선택
다음과 같이 작성한 코드가 크롬 브라우저에서 실행된다.
상단 메뉴바의 웹 브라우저에서 어떤 브라우저에서 실행해 줄 지 선택할 수도 있다.