TaBo
개척하는 기록
TaBo
전체 방문자
오늘
어제
  • 기록들 (63)
    • Programming (35)
      • Java (19)
      • Servlet&Jsp (4)
      • Spring (4)
      • SpringBoot (1)
      • 기타 (2)
      • BOJ (5)
    • CS (16)
      • 자료구조 (4)
      • 알고리즘 (4)
      • 운영체제 (5)
      • 기본 용어 (3)
    • Project (4)
      • [Spring] 게시판 (4)
    • 나에 대한 기록 (8)

블로그 메뉴

  • Github

인기 글

태그

  • spring
  • 백준
  • 운영체제
  • OS
  • Spring 게시판
  • 자바
  • 스프링 게시판
  • 알고리즘
  • java
  • c++

최근 글

티스토리

hELLO · Designed By 정상우.
TaBo

개척하는 기록

나에 대한 기록

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

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 변경'

저작자표시 비영리 변경금지 (새창열림)

'나에 대한 기록' 카테고리의 다른 글

[독서 기록] 스프링5 프로그래밍 입문 - 최범균 저  (5) 2023.01.29
[기록] 1월 둘째 주 질문 정리  (1) 2023.01.16
[기록] 매일 코딩하기 - 11월 셋째 주 (Servlet 출력-입력 형식, 서블릿 필터, 입력 데이터 배열로 받기)  (1) 2022.11.14
[기록] 매일 코딩하기 - 11월 첫째 주(웹 기초, tomcat)  (1) 2022.11.07
[기록] 매일 코딩하기 - 10월 말  (1) 2022.10.30
    '나에 대한 기록' 카테고리의 다른 글
    • [기록] 1월 둘째 주 질문 정리
    • [기록] 매일 코딩하기 - 11월 셋째 주 (Servlet 출력-입력 형식, 서블릿 필터, 입력 데이터 배열로 받기)
    • [기록] 매일 코딩하기 - 11월 첫째 주(웹 기초, tomcat)
    • [기록] 매일 코딩하기 - 10월 말
    TaBo
    TaBo

    티스토리툴바