web.xml이 하는 일은 여러가지이다.
web.xml대로 문지기가 일을 한다.
외부에서 사람이 한명 들어오는데 (초기 파라미터 = 암구호:왈라) 이다.
몰래 들어온 사람은 암구호를 물어봤을때 말할 수 없다.
초기파라미터는 한번 설정을 해두면 어디서든지 등장할 수 있다.
어떤사람이 들어오려고 했는데, 인증을 통해 들어오는것이 세션이다.
세션이 3일로 설정되어있을때 a가 들어오면 3일동안 체류 가능하다. 3일이 지나면 a는 추방당해야 한다. 3일 지나도 더 있고 싶으면 문지기한테 다시 가서 세션초기화하면 3일 더 있을 수 있다. 하지만 몰래 들어온 사람들은 문지기에게 갈 수 없으니 3일 지나면 튕겨나간다. 이렇게 며칠 있을 수 있는지 세션의 시간을 설정하는것이다.
성 안에 여러 건물이 있다. (가, 나, 다, 라)
a가 성안에 들어가려고 할때 문지기가 어느건물로 갈거냐고 물어본다.
그런데 a는 (다)를 달고 들어와서 문지기는 (다) 건물을 찾아서 여기로 가라고 말해줄 수 있다.
(나)를 달고 오면 (나)로 가는법을 알려준다 -> servlet mapping : 요청한 자원,식별자가 어디라는 것을 정확하게 알려주고 그쪽으로 이동할 수 있게 도와주는 것
(다)의 주소는 서울 용산구다 : 정의
이 정의를 보고 매핑해준다.
a가 쌀을 가져오면 문지기가 "네 mime type이 뭐야" 라고 물어보면 a는 "쌀이요"라고 대답한다.
mime type은 들고온 데이터의 타입이 뭔지를 의미한다.
보통 아무것도 안들고온 사람들은 http의 get방식을 쓴다. 뭘 주려고 온게 아니라 뭔가를 가지러 온것이다 -> select
쌀을 가져왔다고 하면 문지기는 a를 쌀창고로 보낸다. 이 쌀을 우리나라에서 먹을 수 있을지 없을지 판단하고, 먹을 수 있으면 깔끔하게 가공을 해야 한다. 그러려면 mime type을 알아야 한다.
어디를 갈지도 모르고 아무것도 안들고 그냥 온 a가 있다면 문지기는 어디로 보내야할지 모른다. 그래서 이 상황에 대한 정의가 있어야한다. 관리자는 이런애들은 광장에 일단 보내서 일거리를 찾게 한다. 이게 welcome file list이다.
(파)를 가져온 a가 있다면, 그리고 성 안에 (파)가 없다면 -> 이상한 곳으로, 모르는 곳으로 가려고 하는 사람이 있다면 error page로 보낸다. 이상한 놈들이 모여있는 이상한 광장이다.
필터: a가 들어왔을때 a의 신분을 확인하는 것. a가 만약 B 나라이거나, 총을 소지하거나 하면 총기 소유 금지 나라인 A에서는 출입금지시켜야한다.
관리자실에 높은 사람이 있는데, 술을 잘먹는 사람이 필요하다. 그래서 리스너로 술 잘먹는사람을 등록한다.
처음에는 문지기한테 술잘먹는 사람 보내라고 명령하는데 문지기가 web.xml내용도 너무 많다고 거절한다. 이때 리스너를 만든다.
리스너는 술 잘먹는사람만 확인하는 대리인이다. 문지기가 일을 함과 동시에 리스너가 누가들어오는지 지켜보고 술잘먹냐고 물어보고 실제로 술을 먹여본다. 그리고 진짜 잘먹으면 관리자에게 데려간다.
현상수배범이 들어온다면 낚아채서 감옥으로 보내거나 내쫓는다.
웹서버에 처음 진입하면 도는게 web.xml이다.