일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- BindingResult
- Testcode
- 필터의 정의
- 필터vs인터셉터
- 인터셉터의 정의
- 유연한 컨트롤러1 - v5
- java.lang.AssertionError
- filter vs interceptor
- 김영한
- application-properties
- abap value in field Data Class error
- 쿠키의 정의
- Validation
- 쿠키란
- MVC
- 세션이란
- 세션vs쿠키
- jpa
- n+1
- SpringMVC
- @Controller
- 구글 보안 api 활용
- spring
- controller
- springSecurityFilterChain 오류
- 세션의 정의
- spring MVC
- 401오류
- .orelseThrow
- optional
- Today
- Total
ABAP DUMP ERROR 24시
서블릿, 서블릿 컨테이너란? 본문
# 인프런 김영한의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 개인적으로 정리한 글입니다.
정리
Q. 서버연결과정이 어떻게 되?
1. 서버 TCP/IP 연결 대기, 소켓 연결
2. HTTP Request Message 파싱 => Post 방식인지, /save url 방식인지
3. Content-type을 읽기
4. Http Body Mesaage 읽기
5. 저장 프로세스 실행
6. 비즈니스 로직 실행(DB에 저장 요청)
7. HTTP응답 Message 실행(HTTP 시작라인 생성 , Header 생성, MessageBody에 HTML 생성)
8. TCP/IP에 응답 전달, 소켓 종료
Q. 서블릿이 뭐야?
위의 6번을 제외한 모든것을 해주는 자바 기반의 웹 어플리케이션 프로그래밍 기술.
Q. 서블릿 사용 방법
urlPattern에 보내는 url 주소를 써주고 그 아래 어플리케이션 로직을 작성하면 된다.
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class test_servlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, httpServletResponse response){
// 어플리케이션 로직을 작성하시오
}
}
Q. 서블릿 컨테이너는 뭐야?
톰캣과 같이 서블릿을 지원하는 WAS를 의미.
Q. 서블릿 컨테이너는 어떤 역할을 해?
1.서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기를 관리하는 역할
2. 싱글톤으로 관리된다
=> 고객의 요청마다 객체를 생성하는것은 좋지 않으므로
최초 로딩시점에 서블릿 객체를 미리 만들어두고 재활용하는 방법을 택한다.
이때 공유변수의 사용은 금지!! //
3. JSP도 서블릿으로 변환되어 사용한다.
4. 동시 요청을 위한 멀티 쓰레드 처리를 지원한다. // 가장 핵심 기술
<공유변수 예제> 싱글톤 사용시.
public class test {
private int price;
public void order(String name, int price){
System.out.println("price = " + price);
this.price = price;
}
다음과 같이 싱글톤으로 이루어진 Container를 다음과 같이 공유변수를 사용해 버린다면...
내가 로그인 했는데 상대방의 정보가 보여지는 치명적인 상황,
나는 1개 샀는데 결제가 3개가 되버리는 어이없는 상황등이 발생한다.
<해결책>
public int order(String name, int price){
System.out.println("price = " + price);
return price;
}
'[WEB]Back-end > Spring MVC' 카테고리의 다른 글
GET URL 쿼리 파라미터, POST HTML Form 형식 비교 (0) | 2022.02.07 |
---|---|
HTTP 데이터 요청 대표적 3가지(GET방식, POST방식, HTTP메세지바디 ) 정리 (0) | 2022.02.07 |
HTML, HTTP API, CSR, SSR의 정리 (0) | 2022.02.07 |
멀티 쓰레드란? (0) | 2022.02.05 |
웹 서버 vs 웹 애플리케이션 서버 (0) | 2022.02.03 |