서블릿 프로그램: 클라이언트 요청에 대하여 자바 코드로 응답하는 것
서블릿 프로그램으로 웹 페이지 작성하는 법 1. 지저분한 코드로 작성 2. JSP로 작성 (그나마 깨끗한 코드)
위쪽 배너에서 File > New > Dynamic Web Project 를 클릭 후, 제목적고 FInish 클릭한다. 만들어진 프로젝트 위에서 오른쪽 클릭 후, New > Servlet 클릭 Class name을 Hello라고 하고 싶으면, 뒤에 Servlet을 붙여주는게 정석이다. Next 클릭 체크 박스를 확인하면, doPost와 doGet을 자동으로 만들어준다고 되어있다. 확인 후, Finish 클릭 (다음에 만들때는 서블릿 이름 적고 바로 Finish 클릭하면 된다. 그냥 확인 용도로 본 것 뿐) 생성된 서블릿 클래스에 어노테이션을 확인하면, HelloServlet이 적혀있다. 저걸 소문자로 hello만 작성한다!! 이것이 정석이라고 한다. 실행시켰을때, 콘솔창에 생성자 콜과 doGet이 출력문이 뜬 것을 확인할 수 있다.
1. 지저분한 코드로 작성
다음과 같이 PrintWriter를 이용해 HTML 코드를 작성하여 tiger를 출력할 수 있다. index.html 사용없이 서블릿 프로그램을 root 경로로 사용하고 싶을때, @WebServlet에 root 경로를 다음과 같이 지정해준다. (프로그램이 동작할때 index를 찾는게 아니라 여기를 먼저 쳐다보기 때문에) 서블릿 프로그램을 사용하는 일반적인 이유는 데이터 베이스 접속이 필요하기 때문이다. index.html에는 데이터 베이스에 접속할 수 없다.
2. JSP로 작성
jsp를 사용하면, 위에 지저분한 코드를 쓰지 않아도 된다. 다음과 같이 작성을 한다. 프로젝트 이름 위에서 오른쪽 클릭 후, New > JSP File 클릭한다. 다음과 같이 jsp 파일을 작성한다. 실행하면, 다음과 같이 jsp를 이용하여 웹 페이지를 작성할 수 있다. (서블릿을 거쳐서 jsp로 들어가는 것을 확인할 수 있다.)
서블릿 호출하는 방법 1. Anotation 이용하기 2. mapping 이용하기 → 장점 : 유지 보수
1. Anotation 이용하기
앞서 했던 예제들이 어노테이션을 사용하여 서블릿을 호출할 수 있다. (@WebServlet을 적어줌으로써 서블릿이 호출된다.)
2. mapping 이용하기
프로젝트 위에서 오른쪽 클릭 후, New > Other 클릭 XML 폴더에 XML File 클릭 후, Next를 클릭 File name을 web으로 작성 후, Finish 클릭한다. (File 이름은 사용자 임의로 작성하면 되고, 내가 작성한 web은 Finish를 클릭했을때 이클립스에서 자동으로 web.xml로 확장자를 적어준다.) 톰캣을 설치한 경로( C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf )로 들어가 web 파일에서 연결 프로그램으로 메모장을 찾는다. 메모장에 18번째 줄에서 5개줄을 드래그하여 복사한다. 앞전에 만들어놓은 XML 파일에 붙여넣기를 한다. 뒤에 </web-app>을 작성하여 끝 태그는 직접 적어준다. 다음과 같이 프로젝트 이름을 명시한다. 웰컴 파일을 작성한다. (월켐 파일은 디렉토리의 기본 웹 페이지이며, 클라이언트가 서블릿 이름을 생략하고 디렉토리까지만 지정해서 요청한다면, 웹 서버는 해당 디렉토리에서 웰컴 파일을 찾아서 응답한다.) 다음과 같이 매팅 코드를 적어주며, 웰컴 파일 아래 코드는 앞으로 서블릿 클래스를 추가로 만들때 저 부분만 복사로 붙여넣은다음 이름만 바꿔주면 된다. 다음과 같이 코드를 작성하며, 어노테이션은 주석으로 막아놓는다. 실행을 시키면, 서블릿 프로그램은 어노테이션 없이도 웹 서버에서 경로를 찾아 서블릿 프로그램을 실행시키는 것을 확인할 수 있다. (어노테이션 없이 xml 파일에서 매핑을 통해서 경로를 지정한 것)