▶ 이번 포스팅에서는Java Web Serber에서 핵심이라고 할 수 있는
Servlet 파일 및 Web Container의 구조에 대해서 살펴보겠습니다.
🔑 목차
🎉 1. Web Container (Tomcat)
🎉 2. Servlet 파일 작성
🎉 3. Class 파일 확인
🚩 1. Web Container (Tomcat)
▶ 이전 파트에서 알아보았듯이,
.java 파일을 “컴파일” 해서 .class 파일을 만들고, 이를 “링크” 해서 .object 파일을 만든다.
🚩 2. Servlet 파일 작성
▶ 이전에 .jsp 파일을 만들어서 "hello world"를 출력할 때와 동일한 환경에서 시작한다.
▶ Servlet는 .java 파일이다.
① project 우클릭 – new – Servlet 를 클릭한다.
② Java package에는 원하는 패키지명을 입력하면 되고,
Class name에도 원하는 클래스명을 입력하면 된다.
③ /helloServlet를 클릭 – Edit – [pattern을 /hs로 변경 (helloServlet) ] - next - finish
(이건 URL mapping을 하는 과정인데, 지금은 따라하기만 하고,
자세한건 진도를 좀 더 나간 뒤에 다루도록 하자.)
④ 프로젝트명 – Java Resources – 패키지명 – helloServlet.java
위 경로를 통해 Servlet파일을 확인할 수 있다.
⑤ jsp에서 HelloWorld를 출력했듯이, Servlet에서도 HelloServlet를 출력해보자.
▶ eclipse에서는, 순수 .java파일에서 html을 출력하기 위한 출력 메소드/객체를 제공해준다.
▶ doGet 객체의 내부에 그대로 작성해주면 된다.
▶ HttpServletRequest 객체와 HttpServletResponse 객체 중에서
Response 객체의 인스턴스인 response의 getWriter() 메소드를
PrintWriter의 out이라는 인스턴스에 대입한 뒤,
인스턴스 out의 print 메소드를 통해서 HTML 문법을 입력하는 코드이다.
⑥ 위와 같이 출력된다.
▶ Served at: /testServlet 이라는 문구는
response.getWriter().append(“Served at: “).append(request.getContextPath()); 에 의한 것인데
getWriter()를 out이라는 인스턴스에 대입하는 것보다 먼저 append를 통해서 문자열을 붙여줬기에,
보다 더 윗 줄에 나타내게 되는 것이다.
▶ append() : 문자열 뒤에 연결해서 붙여주는 메소드이다.
▶ getContextPath() : 경로를 출력해주는 메소드이다.
▶ 추가로, 아까 전에 URL mapping 을 통해
/HelloServlet ➡ /hs로 변경했었는데, 그 이유에 대해 좀 더 알아보자.
▶ 조금 더 자세히 설명하면,
우리가 만든 helloServlet는 domain도 아니고, directory도 아니기 때문에,
외부에서 helloServlet를 접근하기 위해서 접근할 수단이 필요하게 된다.
▶ 이럴 때에 사용하는 것이 URL mapping이다.
프로젝트의 하위 디렉토리 처럼 작성하면 된다.
(보통 URL mapping은 해당 Servlet의 이름과 다르게 축약해서 짓는다.)
🚩 3. Class 파일 확인
▶ jsp에서는 apache-tomcat-8.5.51\work\Catalina\localhost\testProject\org 에서
java/class 파일을 확인할 수 있었다.
▶ Servlet의 class파일은
apache-tomcat-8.5.51\wtpwebapps\testServlet\WEB-INF\classes\com\testServlet
에서 확인할 수 있다.
💡 한번 더 정리해보자.
▶ JSP 파일은 HTML 파일이기 때문에,
jsp ➡ java ➡ class ➡ obj
▶ Servlet 파일은 .java 파일이기 때문에
java(Servlet) ➡ class ➡ obj
위 순서로 resquest / response가 된다.
✋ 다음 포스팅에서는 JSP와 Spring Framework에서
핵심이라고 할 수 있는 Servlet에 대해서 살펴보겠습니다.
'(2022) 공부 (Study)' 카테고리의 다른 글
🔥 JSP 기본 정리 - #5 Servlet Mapping (1) | 2021.01.04 |
---|---|
🔥 Spring Framework - #2 개발 환경 구축 (0) | 2021.01.04 |
💡 정보처리기사 필기+실기 합격 후기 (1) | 2021.01.03 |
🔥 JSP 기본 정리 - #3 JSP 살펴보기 (0) | 2021.01.02 |
🔥 Spring Framework - #1 Spring 개요 (0) | 2020.12.31 |