비교 차트
비교의 근거 | 애플릿 | 서블릿 |
---|---|---|
실행 | 애플릿은 항상 클라이언트 측에서 실행됩니다. | 서블릿은 항상 서버 측에서 실행됩니다. |
패키지 | import java.applet. *; import java.awt. *; | import javax.servlet. *; import java.servlet.http. *; |
라이프 사이클 메소드 | init (), stop (), paint (), start (), destroy (). | init (), service () 및 destroy ()를 호출합니다. |
사용자 인터페이스 | 애플릿은 AWT 및 Swing과 같은 사용자 인터페이스 클래스를 사용합니다. | 사용자 인터페이스가 필요하지 않습니다. |
요구 사항 | 실행에 자바 호환 브라우저가 필요합니다. | 클라이언트 측의 입력을 처리하고 HTML 페이지, Javascript, 애플릿의 관점에서 응답을 생성합니다. |
자원 | 클라이언트에 도달하면 클라이언트의 자원을 사용하여 그래픽 인터페이스를 생성하고 복잡한 계산을 실행합니다. | 서버의 자원을 사용하여 클라이언트의 요청 및 응답을 처리합니다. |
대역폭 사용률 | 애플릿은 클라이언트 시스템에서 실행될 때 더 많은 네트워크 대역폭을 사용합니다. | 서블릿은 서버에서 실행되므로 더 적은 대역폭이 필요합니다. |
보안 | 클라이언트 시스템에있는 것처럼 위험이 높아집니다. | 서버 보안 아래에 있습니다. |
애플릿의 정의
애플릿은 실행을 위해 HTML 코드에 내장 된 작은 Java 프로그램으로, 클라이언트 측 시스템에서 실행됩니다. Java의 API 라이브러리에는 "애플릿"이라는 클래스가 들어있는 "애플릿"이라는 패키지가 들어 있습니다. 작성하는 애플릿은, Applet 클래스의 서브 클래스가 아니면 안되며, 서브 클래스는 프로그램 외부에있는 코드에 의해 코드가 액세스 될 때 "public"으로 선언되어야합니다. 자, 간단한 예를 통해 애플릿의 생성을 이해합시다.
import java.awt. *; import java.applet. *; public class Hello는 애플릿을 확장합니다. {public void paint (Graphics g) {g.drawString ( "Hello Applet", 20, 20); }}
위의 코드에서 두 가지 import 문은 애플릿을 만드는 데 필요한 "awt"패키지와 "applet"패키지입니다. 코드의 paint () 메소드는 작성된 애플릿으로 대체되는 awt 패키지에 정의됩니다. Hello 클래스를 볼 수 있듯이 패키지 애플릿 내에 정의 된 Applet 클래스가 확장되었습니다. 이제이 파일을 Hello.java와 같은 클래스 이름으로 저장해야한다. 애플릿이 실행되도록하는 두 가지 방법이 있습니다 :
- 애플릿을 Java 호환 웹 브라우저에서 실행하십시오.
- 애플릿을 실행하는 가장 빠른 방법 인 애플릿 뷰어를 사용하여 실행하십시오.
Java 호환 웹 브라우저에서 애플릿을 실행하는 첫 번째 방법은 Hello.java 파일에서 작성된 애플릿을 포함하는 HTML 프로그램을 작성해야합니다.
// html 코드
여기서 애플릿 코드 "Hello"는 애플릿을 작성한 파일의 이름입니다. 이제 hello.html과 같이이 파일을 저장하십시오. 웹 브라우저에서이 파일을 실행하려면이 HTML 파일을 웹 브라우저에로드하면됩니다. 그러면 애플릿이 실행됩니다.
애플릿 뷰어에서 애플릿을 실행하는 두 번째 방법은 애플릿 뷰어에서 애플릿을 실행하는 데 필요한 명령을 아래에 제공하는 것입니다.
> 애플릿 뷰어 hello.html
또한 실행 속도를 높이는 또 다른 편리한 방법이 있습니다. 소스 파일의 시작 부분에 HTML 코드를 주석으로 삽입 Hello.java
import java.awt. *; import java.applet. *; / * * / public class Hello는 애플릿을 확장합니다. {public void paint (Graphics g) {g.drawString ( "Hello Applet", 20, 20); }}
애플릿을 실행하려면 다음 명령을 전달해야합니다.
> javac Hello.java> 애플릿 viewer Hello.java
애플릿 클래스의 라이프 사이클 메소드는 init (), service () 및 destroy ()입니다. init () 메소드는 애플릿이 초기화 될 때 호출됩니다. start () 메소드는 애플릿이 시작되거나 재시작 될 때 호출됩니다. stop () 메소드는 애플릿이 종료 될 때 호출됩니다. paint (Graphics) 메소드는, 애플릿의 재 paint가 필요한 경우에 불려갑니다. destroy () 메소드는 애플릿이 소멸 될 때 호출됩니다.
노트 :
애플릿 클래스에 main () 메소드가 없다는 것을 알 수 있습니다. 애플릿의 이름이 애플릿 뷰어에 전달되거나 애플릿 이름이 포함 된 HTML 파일이 웹 브라우저에로드되면 애플릿의 실행이 시작됩니다.
서블릿 정의
애플릿과 마찬가지로 서블릿도 서버 측에서 실행되는 작은 Java 프로그램입니다. 플랫폼에 종속적 인 CGI 프로그램의 성능 문제로 인해 서블릿이 도입되었습니다. 서블릿은 플랫폼에 독립적입니다. 서블릿의 주요 목적은 클라이언트로부터 요청을 수집하고 해당 요청에 대해 요청 된 웹 페이지를 동적으로 생성하여 클라이언트에 다시 보내는 것입니다.
서블릿은 javax.servlet 및 java.servlet.http 패키지를 사용하여 생성 할 수 있습니다. 서블릿의 라이프 사이클 메소드는 init (), service () 및 destroy ()입니다. 이 메소드는 필요할 때 서버에 의해 호출됩니다.
init () :이 메소드는 서블릿이 메모리에 처음로드 될 때 서버에 의해 호출됩니다.
service () :이 메소드는 클라이언트가 보낸 HHTP 요청 t를 처리하기 위해 호출됩니다.
destroy () :이 메소드는 서블릿에 할당 된 자원을 해제하기 위해 호출됩니다.
자바 애플릿과 서블릿의 주요 차이점
- 애플릿은 클라이언트 시스템에서 실행되는 응용 프로그램이지만 서블릿은 서버 시스템에서 실행되는 응용 프로그램입니다.
- 애플릿의 작성에 사용하는 패키지는, java.applet. import; import java.awt. *; 서블릿을 생성하는 데 사용되는 패키지는 import javax.servlet. *; 그리고 가져 오기 java.servlet.http. *;
- 애플릿 클래스의 라이프 사이클 메소드는 init (), stop (), paint (), start (), destroy ()입니다. 반면, 라이프 사이클 메소드는 init (), service () 및 destroy ()입니다.
- 애플릿은 사용자 인터페이스 클래스 AWT 및 Swing을 사용하여 사용자 인터페이스를 작성하지만 서블릿은 사용자 인터페이스 클래스를 필요로하지 않으므로 사용자 인터페이스 클래스는 필요하지 않습니다.
- 클라이언트 시스템에서 애플릿을 실행하려면 Java 호환 웹 브라우저가 필요합니다. 반면 서블릿에서는 Java가 웹 서버가 클라이언트의 요청 및 응답을 처리 할 수있게해야합니다.
- 애플릿은 클라이언트 측에서 실행될 때 클라이언트 시스템의 자원을 사용합니다. 서블릿은 서버 측에서 실행될 때 서버의 자원을 활용합니다.
- 애플릿은 서블릿에 비해 보안 문제가 더 심각합니다.
결론:
애플릿과 서블릿은 둘 다 서블릿이 클라이언트 요청에 응답하여 애플릿을 생성 할 수있는 작은 자바 프로그램입니다.