728x90
출처 : JSP (Java Server Page), Servlet에 대해 (System.out.println("개발자");)
출처의 글을 읽고 글로 쓰면서 재정리 중... 이미지와 동작원리 부분은 퍼옴
JSP란?
- 서블릿 기술을 확장시켜 웹 환경에서 손쉬운 개발을 위하여 만든 기술
서블릿(Servlet)
- 웹컨터이너를 통해 생성되고 실행,소멸되는 자바의 웹 애플리케이션을 구현을 위해 작성되야 하는 코드 이다.
클라이언트의 요청과 응답을 처리하는 클래스이다.
웹 컨테이너(Web Container)
- Contain(포함하다,~을 가지다.), Container(용기,그릇) 그럼 .. 웹 컨테이너는 웹을 할때 사용하는 그릇?
서블릿 클래스 또는 JSP파일을 실행하기 위한 실행환경을 제공하는 역할을 하고, 요청을 처리한 후 응답을 내보내 웹서버에 전달하는 기능을 제공해준다. (JDK가 설치되어 있어야 웹 컨테디너를 설치할 수 있음)
WAS(Web Application Server)라고 한다.(종류: Tomcat, Resin, WebLogic, Jeus, Jetty, WebSphere, JBOSS등)
웹 서버(WebServer)
- 클라이언트/서버 모델과 웹의 HTTP를 사용하여 웹 페이지가 들어 있는 파일을 사용자들에게 제공하는 서버
웹서버와 웹 컨테이너 동작원리
서블릿 라이프 사이클 (Servlet Life Cycle, 생명주기 및 동작원리)
서블릿 관련 클래스 다이어그램
서블릿 클래스 구현 (클래스다이어그램의 맨 하단에 있는 서블릿 클래스)
web.xml 에 서블릿 정보 설정
서블릿 클래스
웹 브라우저의 결과 보기
요청시 마다 1씩 증가하는 모습을 볼 수 있습니다.
서블릿 클래스에 멤버변수로 선언되어 있는 num 변수의 값이 모든 요청에 대해 공유하게 됩니다.
서블릿 클래스는 싱글톤 입니다. 즉, 기존에 객체가 메모리에 존재한다면 그 객체를 다시 돌려줍니다.
init, doGet, doPost, destroy 를 오버라이딩 한 후 서블릿 클래스를 만들었습니다.
순서로 보자면
1. http://localhost:8080/Stone 요청
2. init() 메소드 호출
3. 서블릿클래스 Thread 생성 후 service() 메소드 호출 (service() 메소드는 부모클래스인 HttpServlet에 존재)
4. service() 메소드내에서 오버라이드한 자식클래스의 doGe을 호출 (POST 요청시 doPost 호출)
부모클래스에서 자식클래스 메소드 호출 -> http://ufx.kr/blog/407
여기서 init() 메소드는 최초요청시 한번만 호출 됩니다.
destroy() 메소드 또한 한번만 호출되며, 컨테이너 종료될 때, 타임아웃 되었을 때, class 내용이 변경되었을 때 호출 됩니다.
728x90
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP]소수점 반올림하기 (0) | 2017.10.19 |
---|