서블릿과 jsp

DDUBINI·2020년 11월 19일
0

서블릿 컨테이너 작동
서블릿 컨테이너 = 톰캣
톰캣 같은 was가 java파일을 컴파일해서 Class로 만들고 메모리에 올려 servlet객체를 만든다.
요청이 들어오면 web.xml에 가서 톰캣이 감당할 수 있는지 확인한다. 해당 이름으로 등록된 서블릿이 있는지 확인하고 싱글톤 객체가 만들어졌다면 재활용
하고 안 만들어졌다면 생성한다.

서블릿 동작과정

  1. 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보낸다.

  2. Servlet Container는 HttpServletRequest, HttpServletResponse 두 객체를 생성한다.

  3. 사용자가 요청한 URL을 분석하여 어느 서블릿에 대한 요청인지 찾는다.

  4. 컨테이너는 서블릿 service() 메소드를 호출하며, POST/GET 여부에 따라 doGet() 또는 doPost()가 호출된다.

  5. doGet() 이나 doPost() 메소드는 동적인 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.

  6. 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다.

서블릿의 단점

서블릿은 두 개의 언어가 들어있는데 디자이너가 자바에 대한 지식이 있어야 수정이 가능하다. -> 협업의 문제
그래서 jsp를 쓴다.

사실 jsp도 자바??

오늘 수업시간에 메모장에 jsp파일을 만들었는데 이거 cmd로 컴파일을 하니

이렇게 .java, .class로 자바컴파일 한 것처럼 생겼다.
jsp는 그냥 템플릿일 뿐이다.
이걸로 jsp = sevlet 인 걸 알 수 있다.
그래서 이클립스에서 오류났을때 jsp로 가지 않았던 것이다.

톰캣은 jsp를 실행하면 jsp컨테이너가 되고 servlet을 실행하면 서블릿 컨테이너가 되어 서블릿의 라이프사이클을 관리한다.
톰캣은 jsp컨테이너가 될 때 서블릿 컨테이너보다 할 일이 많아진다.
우리가 jsp를 사용할 때는 간편하게 사용하니까 톰캣이 할 일이 많아지는 것이고 서블릿은 그 반대이다.

profile
ㅎㅇㅎㅇ

0개의 댓글