나에 대한 기록

[기록] 매일 코딩하기 - 11월 둘째 주 (Servlet 기초)

TaBo 2022. 11. 11. 13:13

(1) 저번 주에 학습했듯이 WAS는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server이고, Servlet과 JSP 구동 환경을 제공한다. 그렇다면 Servlet과 JSP란 무엇일까? 우선 Servlet에 대해 알아보자.

 


(2) Servlet이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 요청과 응답에는 규칙이 존재한다. 이러한 요청과 응답을 일일이 처리하려면 굉장히 힘들기 때문에 Servlet은 이러한 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술이다. 

 

[출처] - https://coding-factory.tistory.com/742

 

[Web] 서블릿(Servlet)이란 무엇인가? 서블릿 총정리

서블릿(Servlet)이란? 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 요

coding-factory.tistory.com

 


(3) Servlet 기본 구조

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class myServlet extends HttpServlet {
	public void service(HttpServletRequest request, 
						HttpServletResponse response) 
						throws IOException, ServletException {
		
		...
		
	}
}

doGet, doPost에 대해서는 추후 학습하고자 한다.

 

service 메소드의 역할은 일반적인 .java의 main 메소드 역할과 유사하며, "HttpServletRequest, HttpServletResponse는 Servlet의 입력도구 및 출력도구의 역할을 한다" 정도로만 이해하고 있자. (추후 Http 프로토콜에 대해 더 학습하기)

 


(4) Servlet 구동 원리

(이클립스 등의 IDE를 활용하지 않는다고 가정, Servlet 클래스 파일명이 myServlet.class 라고 가정)

→ tomcat 디렉토리 / webapps / ROOT / WEB-INF 하위에 classes 라는 파일을 만든다.

→ classes 파일에 myServlet.class 를 둔다.

→ servlet class 파일은 절대 사용자에게 직접적으로 요청-반환 되어서는 안 된다.

→ 그러므로 "서블릿 매핑" 을 해야 한다.


(5) Servlet 매핑

→ tomcat 디렉토리 / webapps / ROOT / WEB-INF 에 web.xml 을 편집해야 한다.

<servlet>
	<servlet-name>myservlet</servlet-name>
	<servlet-class>myServlet</servlet-class>
</servlet>
	
<servlet-mapping>
	<servlet-name>myservlet</servlet-name>
	<url-pattern>/hello</url-pattern>
</servlet-mapping>

 

<servlet-name> 은 개발자가 지정한 servlet 이름으로 아무거나 입력해도 되나, 단 <servlet> 과 <servlet-mapping> 에서 동일해야 한다. 

<servlet-class> 는 매핑하고자 하는 servlet 클래스로, package까지 모두 작성해야 한다.

<url-pattern> 은 매핑할 url을 의미한다.

 

해당 방법 이외에도 어노테이션을 활용하여 매핑하는 방법이 있는데, 이는 다음에 학습할 예정이다.

 


 

cf)

1) eclipse에서 웹 개발을 하기 위해서는 eclipse EE 를 추가적으로 설치해야 한다.

2) eclipse 창 초기화 및 정리 : window → perspective → reset perspective

3) eclipse 편집창이 열리지 않을 때 : window → new window → 새로 열린 창에서 작업하기

4) eclipse의 Dynamic Web Project에서 ROOT는 src/main/webapp이며 Context 설정하려면 

'해당 프로젝트 폴더 → properties → web project settings → Context root 변경'