관리 메뉴

CASSIE'S BLOG

[비공개] 파트3 본문

PROGRAMMING/JAVA SPRING

[비공개] 파트3

ITSCASSIE1107 2023. 5. 28. 11:23

 

 

 

 

 

name만 뽑아오는 메소드 getParameterNames(); 
Enumeration (old버전) 은 Iterator (new버전)이랑 똑같은거다.  

그 오른쪽 부분에 표 부분이 map부분이다. 

 

 

year이름 다 똑같을 떄 

복수형 Values

 

이름이 다 같은경우다. 값들을 String[]로 받을 수 있다. 
request.getParameterValues("year");

 

 

 

Web를 제공한다는 말이 뭐야? 브라우저를 통해서 받을 수 있는 모든 서비스를 제공한다는 의미다. 문서를 읽는다던가 이미지를 본다던가 동영상을 본다던가 그런것들 
웹서비스가 제공하는거다.

 

 

port번호에 지정해주면 포트번호를 가지고 어떤서버에 대한 요청인지 알 수가 있다
일단 이 서버가 포트번호랑 연결이 되어있어야한다. 바인딩이 되어있어야함

 

 

 

port번호는 0~1023은 예약이 되어있다.  지금 사진에 25, 22, 80 이런거는 다 예약되어있다. 
약 6만개의 포트를 사용할 수 있다.
65535까지 
만약에 서버에 프로그램을 설치하면 
서버한군데에만 update하면 되잖아요
그래서 was를 사용하는거다. 그러면 클라이언트의 저장공간이 절약되는거다. update 신경 안써도되고 
프로그램을 서비스하는게 was다. 프로그램을 서버에 설치해놓고 클라이언트에게 사용할 수 있게 하는거다.

 

 

Service가 요청을 처리를 하지만 Protocol 종류에 따라서 요청할 떄 어떤 프로토콜로 요청했냐에 따라서 처리할 커넥터가 달라진다.

 

 

Http1.1이면 보내면 HTTP1.1 커넥터가 처리한다. 
Engine도 Host가 있는데 여러개의 호스트 가능 
하나의 톰캣 서버에 여러개의 호스트가 가능 
Context는 하나의 어플레케이션이다. 
서로 영향을 주지않는 독립적인 공간에서 돌아가는거죠.

 

 

 

서브릿: Servlet 작다라는 의미래 작은 서버프로그램이라는 뜻이래 
우리는 컨트롤러를 만들었잖아. 서블릿이랑 컨트롤러는 같은 개념으로 보면 된다. 

서블릿도 해당 url이 있을 거 아니에요? list  - > event라는 컨텍스트에 해당하는 즉 연결된 list하고 연결된 해당 서블릿이 실행이 되는거다.

 

 

8080옆에 사람 모양이 Thread Pool임

 

총정리:
서버안에 서비스가 있고 서비스를 처리하는게 엔진인데 엔진안에는 여러개의 호스트가 있을 수 있고 호스트안에 컨텍스트가 여러개 있을 수 있다. 

 

디버그 모드로 하면 Toggle breakpoint에서 멈춘다고함 코드 번호 행 부분에서 우클릭 
오른쪽 클릭 Run as 밑에 Debug as 

그러면 아래 그림처럼 멈춤

 

 

 

 

Thread가 여러개 있는데 그중에 하나가 요청을 받아서 처리한거
호출스택이 아래에서 위까지 쭉 쌓인건데

제일 밑에 Thread의 run부터 시작하는건데
Thread Pool은 여러개의 thread를 만들어놓은것이라고함 
미리만들어놨다가 요청오면 이중에 작업안하는 thread가 처리하는거임 
이 요청을 http1.1 Processor가 처리함
http1.1 커넥터가 받아서  Processor 에 넘겨줌 
그 다음 엔진 - > 호스트- > 컨텍스트 > 서블릿 > 서블릿이 컨트롤러 호출 > 메서드 호출 이런 식이다.
그냥 흘러가는구나 넘어가래 별로 안 중요하데

 

http1.1 Processor가 객체를 만드는데 하나는 Request고 하나는 Reponse다.   정보 채운 뒤에 계속 전달하는거다. 

 

 

 

프로젝트마다 web.xml이 있다. 

공통설정 쫙 한 뒤에 개별 설정을 한다. 

 

 

 

 

 

 

아파치 폴더에서 conf 폴더에서 이 안에 파일들을 sts에서 복사해서 쓰는거다 설정을 
sts에서는 개별적으로 설정을 따로할 수 있게 복사본을 가지고 실행시킴
sts에서 서버를 여러개 설정을 놓고 다르게 돌릴 수 있다.
테스트 서버, 개발 서버, 실제 운영 서버,...서버를 여러개를 따로따로 등록할 수 있는 장점이 있다.

 

 

 

 

 

server.xml을 들어가면 
서버안에 서비스가 있다.
<Service name = "Catalina>

HTTP1.1 프로토콜로 요청이 오면 이 커넥터가 처리해라는 뜻임

 

만약에 port = "8080"를 "80"으로 바꾸면 호출할 때 8080 안 붙여도됨. http는 기본포트가 80이라서 안 붙이면 그냥 port번호 안 쳐도된다고 함 

 

Engine은 여러 Host 포함 가능, 그 중에서 어떤 Host를 default로 할 것인지 지정할 수 있음. 여기서는 localhost를 default로 지정

 

 

 

너무길어서 중간에 뛰어넘김.

 

 

 

 

 

 

원래 서버 등록할 떄마다 이런거를 해줘야하는데.. 어노테이션으로 그냥 간단히 하는거다. 

반응형

'PROGRAMMING > JAVA SPRING' 카테고리의 다른 글

spring 포폴 만들기 참고자료  (0) 2023.06.04
mySQL 부터  (0) 2023.06.03
SPRING BOOT 구조 정리  (0) 2023.05.24
PUT API & Delete API & ResponseEntity  (0) 2023.05.23
get API  (0) 2023.05.19