[기록] 매일 코딩하기 - 11월 둘째 주 (Servlet 기초)
(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 변경'