일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ddd
- facade pattern
- SERVLET
- 자바의 신
- Stream
- CQRS
- 스트림
- 자바8
- head first
- spring
- 패스트캠퍼스
- Java 8 in action
- 클린코드
- 디자인 패턴
- jsp
- 자바
- Java8
- 자바8인액션
- web
- Design Pattern
- Clean Code
- Java8 in action
- Template Method Pattern
- Java
- AWS101
- spring Batch
- domain
- Java in action
- spring boot
- Was
- Today
- Total
주난v 개발 성장기
요청과 응답(Head First Servlet & JSP) 본문
서블릿 정리
업무 : 클라이언트로부터의 요청을 받아 응답하는 것
서블릿 관리
주체 : 컨테이너 ex)Tomcat
클라이언트의 요청 시 컨테이너는 새로운 스레드를 생성하거나, 스레드 풀에서 가져와서, 서블릿의 service() 호출
매번 새로운 request, response 객체 생성(컨테이너가 함)
즉, 요청한 횟수만큼 스레드가 생성된다.
==> 모든 요청은 자신만의 스레드 / 스택에 할당
서블릿의 일생
컨테이너 서블릿 클래스 서블릿 객체
——-> 클래스 로딩
1. 컨테이너가 시작할 때(톰캣이 실행될 때)
2. 최초 클라이언트 접근 시
———————-> 서블릿 인스턴스(기본 생성자 실행)
———————-> init() 초기화
1. 서블릿 일생에서 단 한번만 호출
———————-> service()
———————-> destroy()
1. 스레드를 소멸하거나, 컨테이너가 관리하는 스레드 풀로 반환한다.
2. Request, Response 객체는 가비지컬렉션 대상이 된다.
* 슈뢰딩거 상태 (서블릿 생성자와 init() 메소드 사이의 상태)
- 완전하게 죽은 것도 아니고 살아있는 것도 아닌 상태
GET vs POST
GET : URL에 데이터 노출, 데이터의 양의 제한이 있음
POST : 몸체가 있음, 데이터 노출 URL에서 불가(물론 Fiddler 이용하면 확인가능)
중요한 차이점
1. 사용 용도 : GET(조회), POST(저장, 데이터 처리)
2. 멱등이냐? 아니냐? 멱등이란 ? 동일한 작업을 한번이고 두번이고 계속해도 부작용이 없는 상태
HTTP 1.1에서는 GET, PUT, HEAD는 멱등이라고 함. PUT은 잘 이해가 가지않음 - 추후 확인 필요
정리
컨테이너는 서블릿을 로딩 -> 디폴트 생성자 호출
-> init 메소드 실행(ServletConfig, ServletContext 객체 접근)
(서블릿 및 웹 애플리케이션 설정 정보 파악 가능)
Response
클라이언트에 데이터를 전송하기 위하여 Response 객체를 사용한다.
Response = 헤더 + 몸체
Content-type
브라우저에게 지금 내려보낼 컨텐츠가 어떤 타입인지를 알려줌(ex. text/html 등..)
mime-type과 같음.
IllegalStateException
response를 기록한 뒤에 sendRedirect를 하면, 이미 쓰여진 응답이기 때문에 해당 에러 발생
'개발 성장기 > Servlet' 카테고리의 다른 글
웹 어플리케이션 아키텍쳐(Head First Servlet & JSP) (0) | 2019.11.16 |
---|---|
Servlet ? JSP ? (Head First Servlet & JSP) (0) | 2019.11.16 |
필터와 랩퍼(Head First Servlet & JSP) (0) | 2019.11.16 |
세션 관리(Head First Servlet & JSP) (0) | 2019.11.16 |
속성과 리스너 (Head First Servlet & JSP) (0) | 2019.11.16 |