BACK END/JSP

웹 프로그래밍과 서블릿

jenn lee 2020. 11. 20. 19:48

* pdf p.41~

 

웹 프로그래밍의 큰 흐름

 

JSP의 주요 구성 요소

 

 

Get/Post 데이터 전송 방식 

서버에 요청(Request) 하기 위한 전송 방식은 get/post 두가지가 있음

Http프로토콜이 제공해주는 7가지 메서드들 중 웹서비스 개발에 주로 사용하는 메서드

 

1. Get

요청URL에 데이터(파라미터값)을 붙여서 전송해주는 방식

key=value(이름=값)으로 매핑하고 &(앤퍼센트)로 파라미터 구분

속도가 빠름(캐싱때문에)

보안이 취약함(URL에 데이터가 표시되어)

길이에 제한이 있음(256byte)

get방식 지정방법
<form action="주소" method="GET">

 

2. Post

데이터 전송을 기반으로 한 요청 메서드

데이터(파라미터)를 body(본문)에 담아서 전송함

속도가 get보다 비교적 느림

보안이 get보다 비교적 좋음

길이에 제한이 없음

 

 

3. Content Type (=MIME Type, 문서의 종류)

 

* 참조 : pdf수업자료 p.62 & https://mommoo.tistory.com/m/60

인터넷을 통한 문서를 주고 받을 때 사용되는 문서형식을 정의한 것

브라우저에 내려 보내는 데이터의 유형을 지정할 때 사용

즉 JSP가 생성할 문서의 종류를 지정할 때 사용함

 

post방식으로 데이터를 보낼 땐 컨텐츠 타입을 꼭 명시해줘야 함

post방식은 body에 데이터를 넣어 보내기 때문에 content-type이라는 헤더필드가 들어가고,

(content-type는 header필드 중 body의 데이터를 설명함)

아래와 같이 어떤 데이터 타입인지를 명시해줘야 함

1 application/x-www-form-urlencoded
2 text/plain
3 multipart/form-data

 

 

 

웹 프로그래밍 구조

프로그램구조

출처 : https://addio3305.tistory.com/39?category=772645  

 

 

웹 프로그래밍 구성요소 

1. 자원(resource)

html페이지, 소리/이미지/pdf파일 등

2. 웹 서비스

서버 인프라 구축하여 서비스하는 행위

3. 클라이언트

일반적으로 웹 브라우저 

4. 웹 서버

클라이언트 요청(request)받아 처리결과를 응답(response) 해줌

5. 웹 어플리케이션 서버

웹서버의 업무 분담

6. (서블릿) 컨테이너

서블릿을 관리/실행해주는 프로그램

7. 톰캣

 

 

 

 


서블릿(Servlet) 

클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는,

Servlet클래스의 구현 규칙을 지킨 자바 프로그램  이라고 이해하면 됨

(자바와 관련있으므로 JDK가 필요. 즉 자바API와 이를 동작시키는 JVM이 필요함)

* 서블릿 관련 참조 출처 : https://jusungpark.tistory.com/15 & https://breath91.tistory.com/m/82

 

 

서블릿 컨테이너

서블릿 컨테이너는 서블릿을 관리해주는 역할을 수행함

- 서블릿의 생명주기를 관리

- 요청에 따른 스레드를 생성해 작업을 수행함

- 클라이언트의 request를 받아주고 response를 보낼 수 있도록

웹서버와 소켓을 만들어 통신 해줌 (통신지원)

 

 

 

서블릿 동작과정

출처 : https://lalwr.blogspot.com/2018/03/blog-post_20.html

 

 

서블릿 생명주기(Servlet Life Cycle)

서블릿 생성 > init() > { service() > doXX() > destory() } > 서블릿 종료 ( {} 반복 )

출처 : https://lalwr.blogspot.com/2018/03/blog-post_20.html

 

 

서블릿 관련 메소드

일반적으로 사용자가 만드는 서블릿은 javax.servlet.HTTP.HTTPServlet을 상속받아 구현함
개발자가 작성하는 서블릿클래스는 추상클래스 HttpServlet에 있는 메소드 중
클라이언트 사용자가 요청한 정보에 따라 처리해야할 메소드를 오버라이딩해서 구현함

 

doGet() : 클라이언트 Http Get요청에 대해 처리

doPost() : 클라이언트 Http Post요청에 대해 처리