Servlet
1. Servlet 이란?
- 자바 서블릿(Java Servlet)은 바자를 이용해 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양
- 흔히 "서블릿"이라 불림
- 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종
- 서블릿은 JSP와 비슷하지만 JSP는 HTML 문서 안에 Java 코드를 포함하며, 서블릿은 자바 코드 안에 HTML을 포함하고 있음
2. Servlet의 동작 흐름
3. 사용자 정의 Servlet의 상속 구조
4. Servlet의 Life Cycle
- Servlet class는 java SE에서 class아 다르게 main method 가 없음
- 객체의 생성부터 사용(method call)의 주체가 사용자가 아닌 Servlet Container에게 있음
- Clinet가 요청(request)을 하면 Servlet Container는 Servlet 객체를 한번만 생성
- 초기화(한번만)하며 요청에 대한 처리(요청시마다 반복)를 하게 됨
- Servlet 객체가 필요 없게 되면 제거하는 일까지 Container가 담당하게 됨
- 객체 생성(Constructor), init(), destroy() 부분은 최초 요청 시 한번만 실행
- service(), doGet(), doPost()는 요청 시마다 반복 실행
- init() : 서블릿이 메모리에 로드될 때 한번 호출되며 코드 수정으로 인해 다시 로드되면 다시 호출
- doGet() : GET 방식으로 data 전송 시 호출
- doPost() : POST 방식으로 data 전송 시 호출
- service() : 모든 요청은 service()를 통해서 doXXX() 메소드로 이동
- destroy() : 서블릿이 메모리에서 해제시 호출되며 코드가 수정되면 호출
5. Servlet의 Parameter
1) GET과 POST 방식의 비교
GET | POST | |
특징 | - 전송되는 데이터가 URL 뒤에 Query String으로 전달. - 입력 값이 적은 경우나 데이터가 노출이 되도 문제 없는 경우에 사용 |
- URL에 데이터 표시 없이 전송 - HTTP header 뒤 body에 입력 스트림 형태로 데이터 전달 |
장점 | - 간단한 데이터를 빠르게 전송 가능 - form tag 뿐만 아니라 직접 URL에 입력하여 전송이 가능함 |
- 데이터의 제한이 없음 - 최소한의 보안 유지 효과를 볼 수 있음 |
단점 | - 데이터 양에 제한이 있음(2kb-> 2048byte) | - 전달 데이터의 양이 같을 경우 GET 방식보다 속도가 느림 -->전송 패킷을 위해 body에 데이터를 구성해야하기 때문 |
** URL vs URI
- URI (Unifrom Resource Identifier) : 인터넷 자원을 나타내는 고유 식별자
- URL (Uniformed Resource Locator) : 프로토콜을 포함하여 해당 자원의 위치, path를 의미하며 일반적으로 사이트 도 메인을 의미
- URL은 URI에 포함되는 개념
'프로그래밍공부 > Servlet&JSP' 카테고리의 다른 글
JSP(Java Server Page)란 ? (0) | 2022.03.23 |
---|---|
Web Architecture (0) | 2022.03.22 |