인터넷 검색을 하면은 많은 자료들이 나오는데, 제가 이해한데로 정리를 해보겠습니다.
물론 거의 퍼온 거지만요 ㅎㅎ 워낙 자료가 많아서 출처는..... 먼산~ ㅡ_-)>
Java Applet은 Web 클라이언트인 브라우저에서 수행되는 Java 실행파일이며,
Java Servlet은 Server Side Applet의 약어로 Web 서버 즉, Servlet 컨테이너에서 수행되는 Java 클래스 입니다.
Servlet은 구현 시 상속해야 하는 부모 클래스가 정해져 있음.
1. Servlet, GenericServlet, HttpServlet 중 하나를 상속하여 구현한다.
2. init(), service(), destory()등의 메소더들은 정해진 순서로 호출되므로, 각 메소드가 호출되는 시점에 수행해야 할 기능이 있으면 해당 메소드를 오버라이딩한다.
3. Java Application과는 달리 단독으로 수행될 수 없다.
HttpServlet 클래스를 상속하는 경우 service()메서도는 브라우저로부터의 요청 방식(GET 또는 POST) 에 따라 doGet(), doPost()등 정해진 메서드들을 호출.
아래 소스는 가장 기본적인 소스이지만, 처음 공부하는 나에게는 굉장히 어려운?? 응??
@Override
public void init(ServletConfig sc){
System.out.println("init()");
}
@Override
public void service(ServletRequest reg, ServletResponse res){
System.out.println("service()");
}
@Override
public void destroy(){
System.out.println("destory()");
}
}
servlet의 수행 흐름에 대하여 정리를 해보겠습니다.
1. 브라우저로부터 WAS에 Servlet 수행 요청이 전송됩니다.
2. 요청된 Servlet 클래스를 찾아서 메모리에 로딩한 후 객체를 생성합니다.
3. init(ServletConfig) 메소드를 호출합니다.
4. service(ServletRequest, ServletResponse) 메소드를 호출합니다.
5. 요청 방식에 따라서 doGet(HttpServletRequest, HttpServletResponse) 또는 doPost(HttpServletRequest, httpServletResponse) 메소드를 호출합니다.
6. 출력 버퍼의 내용을 요청한 브라우저로 리턴한다.
알아 두셔야 할 사항은 Servlet 요청이 최초 요청인 경우과 두 번째 이후의 요청의 흐름이 다릅니다.
최초의 요청과 두 번째 이후의 요청의 차이점은 객체의 생성과 init() 메소드의 호출입니다.
최초의 요청에서 2번, 3번(메모리에 로딩후 객체 생성과 init()을 호출 하였기 때문)을 통해서 서블릿 객체가 생성되었기 때문에 2번 3번을 제외한 1번, 4번, 5번, 6번만 수행이 되는거져.
init() 메소드 호출과 관련된 내용을 다시 한번 훑어 보면은,
처음으로 Servlet의 요청이 들어왔을 때 해당 Servlet은 Servlet 컨테이너에 의해 자동으로 메모리에 로딩 된다. 메모리로 Servlet 클래스가 로딩된 후에 객체가 생성되는데, 이 때 init() 메소드를 호출하게 됩니다. init() 메소드는 Servlet 로딩시(최초 처음) 단 한번 호출됩니다.
'CodeIN > Java' 카테고리의 다른 글
| [java] Clipboard(클립보드) 기능 사용하기 (0) | 2009/09/11 |
|---|---|
| [jsp/servlet] InfoServlet (8) | 2009/08/11 |
| [jsp/servlet] Servlet 기본과 수행 흐름 (0) | 2009/08/11 |
| [tomcat] Servlet/JSP 테스트 환경 구축 (2) | 2009/08/04 |
| VisualVM - All-in-One Java Troubleshooting Tool (0) | 2009/07/30 |
| jConsole 사용하기 (2) | 2009/07/30 |

servlet-api.jar
