Client(서버에게 요청) (req)--><---(res) Server(요청에 맞는 응답)
사용자의 요청에 맞는 서비스를 제공해주는 것.
-요청(request): 클라이언트 --> 서버
-응답(response): 서버 --> 클라이언트
사용자의 요청이 정적 데이터인지 동적 데이터인지 판단한다.
정적 데이터일 경우 이미 준비된 HTML문서를 그대로 응답해주며, 동적 데이터라면 웹 컨테이너에 요청을 보낸다.
동적 데이터일 경우 JSP,서블릿으로 연산 및 제어 그리고 DB까지 접근한다.
DB에 접근하는 연산을 복잡한 연산이라고 하며,JAVA로 처리한다.(JAVA는 DB에 접근하는데 최적화된 언어)
동적 데이터가 정제된 데이터(정적 데이터)로 완성되면, 이를 웹 서버로 응답해준다.
동적 데이터를 처리할 서블릿을 메모리에 할당하며, web.xml(데이터전달-어떤 서블릿으로 가야돼?, WAS한테 모든 걸 알려줌- 전달,서버가 실행되면 알아서 was가 참조해서 실행될 수 있게,등록되어 있는 경로를 써주면)을 참조한 뒤 알맞는 서블릿에 대한 Thread를 생성한다. 서블릿 요청과 서블릿 응답 객체 생성 후 서블릿에 전달하면, 연산 종료 후 메모리에서 해제시킨다.
Java 코드안에 HTML을 작성할 수 있는 JAVA 프로그램이다.
Thread에 의해 서블릿에 있는 service()메소드가 호출된다.
요청한 전송 방식에 맞게 doGet(request,response),doPost(request,response)등의 메소드를 호출한다.
클라이언트가 요청을 하면 그 요청된 것들이 요청 객체에 담겨있을 것이고,웹서버가 처음에 http리퀘스트로 받을 것이고,정적 데이터라면 바로 보여지겠지만, 동적 데이터이기 때문에 was에 요청을 하고 was는 리퀘스트랑 리스폰스를 받아서 메모리에 할당, 메모리에 할당된 것들을 웹컨테이너에 전달, 해당 웹컨테이너에는 서블릿이있기 때문에 메소드에 파라미터로 리퀘스트랑 리스폰스가 들어가고, 여기서 나오면 정적데이터니깐 다시 없어지기 전에 was한테 전달, 서블릿 종료후 , http 리퀘스트랑, http 리스폰스로 바뀌어서 들어감 그러면 이제 웹서버는 정적데이터인 것을 확인하고 응답해줌.