(2022) 공부 (Study)

🔥 JSP 기본 정리 - #4 Servlet 살펴보기

수낭 2021. 1. 4. 09:44

이번 포스팅에서는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 객체의 인스턴스responsegetWriter() 메소드
PrintWriterout이라는 인스턴스에 대입한 뒤,
인스턴스 outprint 메소드를 통해서 HTML 문법을 입력하는 코드이다.

 

위와 같이 출력된다.

Served at: /testServlet 이라는 문구는
response.getWriter().append(“Served at: “).append(request.getContextPath()); 에 의한 것인데
getWriter()를 out이라는 인스턴스에 대입하는 것보다 먼저 append를 통해서 문자열을 붙여줬기에,
보다 더 윗 줄에 나타내게 되는 것이다.

append() : 문자열 뒤에 연결해서 붙여주는 메소드이다.

 getContextPath() : 경로를 출력해주는 메소드이다.

 

추가로, 아까 전에 URL mapping 을 통해
/HelloServlet /hs로 변경했었는데, 이유에 대해 좀 더 알아보자.

 

조금 더 자세히 설명하면,
우리가 만든 helloServletdomain도 아니고, directory도 아니기 때문에,
외부에서 helloServlet를 접근하기 위해서 접근할 수단이 필요하게 된다.

 

이럴 때에 사용하는 것이 URL mapping이다.
프로젝트의 하위 디렉토리 처럼 작성하면 된다.
(보통 URL mapping은 해당 Servlet의 이름다르게 축약해서 짓는다.)

 

🚩 3. Class 파일 확인

jsp에서는 apache-tomcat-8.5.51\work\Catalina\localhost\testProject\org 에서
java/class 파일을 확인할 수 있었다.

 

 Servletclass파일은
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에 대해서 살펴보겠습니다.