Java의 서블릿 라이프 사이클: 방법, 아키텍처, 비교 및 ​​설정

게시 됨: 2021-03-03

목차

소개

서블릿은 구성 요소 기반 및 플랫폼 독립적일 뿐만 아니라 웹 기반 응용 프로그램 구축을 지원하는 방법을 제공합니다. 서블릿은 데이터베이스에 액세스하기 위해 Java API 및 JDBC API에 액세스할 수 있습니다. Java Servlet의 경우 CGI(Common Gateway Interface) 프로그램의 성능에 제한은 없으나 여전히 몇 가지 단점이 존재한다.

서블릿이란?

Servlet은 동적 웹 페이지를 만드는 데 매우 유용한 기술입니다. 웹 브라우저와 HTTP 클라이언트 또는 서버 사이의 중간 계층 역할을 합니다. 서블릿의 도움으로 처음에는 사용자로부터 입력을 수집한 다음 동적으로 웹 페이지를 만듭니다. 서블릿은 서버 및 호스트 응용 프로그램의 기능을 확장합니다. 서블릿은 서버의 기능을 확장하고 사용자에 대한 모든 유형의 요청에도 응답합니다.

원천

CGI 대 서블릿

서블릿 이전에는 CGI가 널리 사용되었습니다. CGI는 사용자로부터 받은 요청을 응용 프로그램에 전달하는 방법입니다. CGI는 웹 서버를 위한 방법이지만 브라우저(클라이언트)에서도 응답을 받습니다. 사용자가 브라우저에 웹 페이지를 요청하면 서버는 이를 다시 브라우저로 보냅니다.

클라이언트가 웹 페이지에서 양식을 작성하고 다시 보내려고 하면 응용 프로그램에서 처리됩니다. 서버는 정보를 작은 웹 응용 프로그램에 전달합니다. 이 프로그램은 먼저 데이터를 처리한 다음 확인 메시지를 통해 다시 보냅니다.

서블릿 라이프 사이클 방법 요약

서블릿에는 주로 세 가지 라이프 사이클 방법이 있으며 다음과 같이 설명할 수 있습니다.

  1. 초기화()
  2. 서비스()
  3. 파괴하다()

원천

서블릿 아키텍처

  • 먼저 클라이언트가 보낸 데이터를 읽습니다. 그런 다음 웹 페이지에 HTML 양식을 삽입한 다음 클라이언트에서 보낸 요청을 보냅니다.
  • 그 후 서블릿은 데이터를 처리하고 데이터베이스 관리 시스템에 연결하여 웹 서비스를 호출하여 RMI를 실행합니다.
  • 처리 후 문서를 텍스트 및 gif 형식으로 보낼 수 있습니다.
  • 마지막으로 HTTP를 클라이언트에 보냅니다.

원천

이제 우리는 이러한 방법에 대해 자세히 논의할 것입니다

1. 초기화()

init() 메소드는 서블릿 인스턴스가 생성된 후 한 번만 호출됩니다. 처음에는 서블릿을 초기화합니다. Servlet.init()는 서블릿 인스턴스가 성공적으로 생성되었음을 나타냅니다.

init() 메서드의 구문은 다음과 같습니다.

공개 무효 초기화(ServletConfig 구성)에서 ServletException이 발생합니다. {

//초기화 코드

}

2. 서비스()

서블릿이 요청을 수신할 때마다 웹 컨테이너는 service() 메서드를 호출합니다.

  • 요청된 데이터를 수집하려면 b
  • y 클라이언트, 서비스 요청 개체가 사용됩니다.
  • 출력 내용을 생성하기 위해 ServletResponse 객체가 사용됩니다.

service() 메서드의 서명은 다음과 같이 제공됩니다.

공개 무효 서비스(ServletRequest 요청, ServletREsponse 응답)

ServletEXception 발생, IOException {

//요청 처리 코드

}

service() 메서드는 doGet, doPost, doPut, doDelete 및 기타 여러 메서드를 사용합니다.

3. 파괴()

사용자 는 서블릿의 수명 주기 에서 적어도 한 번 destroy() 메서드를 호출합니다 . 데이터베이스 연결을 종료하고 할당된 메모리와 리소스를 해제하는 데 사용됩니다. 또한 정리 목적에 도움이 되며 가비지 수집과 관련이 있습니다.

destroy() 메서드의 서명은 다음과 같습니다.

공개 무효 파괴(){

// 종료 코드

}

또한 읽기: 서블릿 대 JSP

서블릿의 환경 설정

Servlet 응용 프로그램을 만들려면 먼저 아래에 설명된 Tomcat 서버 설치와 같은 몇 가지 단계를 따라야 합니다.

1. 디렉토리 구조 생성

원천

먼저 Apache – Tomcat\webapps 디렉터리라는 디렉터리 안에 위의 디렉터리 구조를 만들어야 합니다. 폴더를 생성하는 웹 애플리케이션 아래에 모든 HTML, 정적 파일, 이미지를 보관해야 합니다. 서블릿은 클래스 폴더에 보관해야 합니다. 마지막으로 web.xml 파일은 WEB-INF 폴더 아래에 있어야 합니다.

2. 서블릿 생성

서블릿을 생성하는 세 가지 방법이 있습니다.

  1. Servlet 인터페이스를 구현함으로써.
  2. GenericServlet 클래스를 확장함으로써.
  3. HTTP 서블릿 클래스를 확장해야 합니다.

httpServlet 추상 클래스를 확장할 수 있으면 주로 서블릿을 구성할 수 있습니다.

3. 서블릿 컴파일

서블릿을 컴파일하려면 JAR 파일이 필요합니다.

  1. 클래스 경로를 설정하여.
  2. JRE/lib/ext 폴더에 jar를 붙여넣습니다.

4. 배포 설명자 생성

DD는 웹 기반 서버에서 사용하는 XML 파일로 정의할 수 있습니다.

그들은 쉽게 서블릿을 실행할 수 있습니다. DD는 몇 가지 중요한 목적으로 사용됩니다.

  1. URL을 Servlet 클래스에 매핑합니다.
  2. 매개변수를 초기화합니다.
  3. 오류 페이지를 정의합니다.
  4. 보안 역할별.
  5. 태그 라이브러리를 선언함으로써.

5. 서버 시작

Apache Tomcat 서버를 시작하려면 apache-tomcat/bin 디렉토리에 있는 startup.bat 파일을 두 번 클릭해야 합니다. 그러면 작동이 시작됩니다.

6. 처음으로 Tomcat 서버 시작하기

Tomcat 서버를 처음 시작하려면 환경 변수에 JAVA_HOME을 설정해야 합니다. 다음 단계는 아래에 언급되어 있습니다. 내 컴퓨터 를 마우스 오른쪽 버튼으로 클릭 하고 속성 으로 이동해야 합니다 .

원천

  1. 다음으로 고급 탭으로 이동하여 환경 변수 버튼 을 클릭해야 합니다 .

원천

  1. 따라서 새로 만들기 버튼 을 클릭하고 변수 이름 텍스트 필드에 JAVA_HOME 을 입력 하고 변수 값 텍스트 필드에 JDK의 경로를 입력합니다. 그런 다음 확인을 클릭하여 저장해야 합니다.

원천

7. 서블릿 애플리케이션 실행

서블릿 버튼을 실행하면 다음과 같습니다.

브라우저를 연 후 http:localhost:8080/First/hello 를 입력해야 합니다.

확인: 인도의 Java 개발자 급여

서블릿 요청 인터페이스

ServletRequest는 클라이언트에 서블릿에 대한 확실한 정보를 제공하는 것을 목표로 합니다.

콘텐츠 유형, 길이, 매개변수 값 등을 포함합니다.

행동 양식

1. getAttribute(문자열)

속성이 존재하지 않는 경우 요청된 속성 값을 반환합니다.

그런 다음 NULL을 반환합니다.

2. getAttributeNames()

클라이언트가 요청한 현재 속성의 이름을 반환합니다.

3. getCharacterEncoding()

일부 문자 집합을 반환합니다.

4. getContentLength()

요청된 데이터 엔터티 크기를 반환 합니다 .

5. getContentType()

처음에는 개체의 ID를 요청합니다. 찾을 수 없으면 NULL 값을 반환합니다.

6. getInputStream()

클라이언트가 수신한 데이터의 이진 스트림을 반환한 다음 문자열을 반환합니다.

7. getParameter(문자열)

매개변수의 문자열을 반환합니다.

8. getParameterNames()

매개변수 이름을 반환합니다.

9. getParameterValues(문자열)

매개변수의 값을 반환합니다. 항상 문자열 형태로 존재합니다.

10. getProtocol()

<protocol>/<major version>.<minor version> 형식으로 프로토콜과 버전을 반환합니다.

11. getReader()

요청 본문의 텍스트를 읽기 위해 버퍼링된 판독기를 반환합니다.

12. getRealPath(문자열)

가상 경로를 피하고 실제 경로를 반환합니다.

13. getRemoteAddr()

IP 주소를 반환합니다.

14. getRemoteHost()

에이전트의 완전히 구조화된 호스트 이름을 반환합니다.

15. getScheme()

요청에 사용된 URL을 반환합니다.

16. getServerName()

서버의 호스트 이름을 반환합니다.

17. getServerPort()

포트 번호를 반환합니다.

18. setAttribute(문자열, 객체)

이 방법은 모든 종류의 요청에 대한 속성을 누적합니다.

서블릿 응답

ServletResponse는 객체를 호출하고 다양한 사용자의 응답이 기록됩니다. 웹 컨테이너는 이러한 모든 활동을 담당합니다. 이것을 만드는 단계는 매우 중요합니다. 단계는 개체를 만드는 것입니다.

이제 아래에서 ServletConfig ServletContext 에 대해 자세히 이야기해 보겠습니다.

서블릿 구성

1. 웹 컨테이너는 초기화 매개변수를 기반으로 구성 개체를 생성합니다.

2. Servlet당 하나의 ServletConfig가 있어야 합니다.

행동 양식

1. 같음(객체)

현재 객체가 주어진 객체와 동일한 값을 가지고 있는지 확인합니다.

2. GetHashCode()

기본 해시 함수로 작동합니다.

3. GetType()

현재 인스턴스의 유형을 반환합니다.

4. MemberwiseClone()

이 객체를 호출하면 얕은 복사본이 생성될 수 있습니다. 기본적으로 현재 개체를 참조합니다 .

5. ToString()

현재 개체를 나타내는 문자열을 반환합니다.

서블릿 컨텍스트

아래에서 ServletContext에 대해 논의해 보겠습니다.

  1. 웹 애플리케이션의 모든 서블릿이 참조 객체에 액세스할 수 있도록 하는 것이 매우 필요합니다.
  2. 참조 개체는 실제로 이들의 런타임 구현입니다.

두 가지 유형의 서블릿은 다음과 같이 정의할 수 있습니다.

1. 일반 서블릿

우리는 일반 서블릿을 프로토콜과 무관하다고 언급하며 재정의하여 호출해야 합니다. 세 가지 방법으로 일반 서블릿을 호출할 수 있습니다.

  • HTML 파일

WebContent/index.html처럼 보일 수 있는 매우 단순한 HTML 파일을 생성할 수 있습니다.

  • 자바 클래스 파일

GenericServlet 클래스를 확장하여 일반 서블릿을 만들 수 있습니다. 간단한 새 클래스 파일을 만들 수 있다면 일반 파일로 이름을 바꿀 수 있습니다. 파일 경로는 다음과 같습니다./ javaResouces/src/default package/generic.java.

  • XML 파일

WebContent/WEB-INF/web.xml 경로에서 이 파일을 찾을 수 있습니다. 특정 URL로 서블릿을 매핑할 수 있습니다.

2. HTTP 서블릿

이러한 유형의 서블릿은 서블릿 클래스의 확장일 뿐입니다. HTTP 종속적이지만 웹 브라우저와 서버가 통신하는 데 도움이 되는 몇 가지 규칙을 설정하고 HTTP 서블릿은 doGet() 또는 doPost() 메서드를 재정의할 수도 있습니다. 또한 두 메서드를 모두 재정의할 수 있습니다.

서블릿의 장점

이제 서블릿의 몇 가지 장점을 살펴보겠습니다.

  1. 성능이 뛰어납니다.
  2. 서블릿은 서버의 주소 공간 내에서 실행할 수 있습니다. 결과적으로 클라이언트 요청을 처리하기 위해 별도의 주소 공간을 생성할 필요가 없다고 말할 수 있습니다.
  3. 플랫폼 독립적이며 주로 구성 요소 기반입니다.
  4. 보안 관리자가 리소스와 데이터를 보호하기 위해 몇 가지 제한을 설정하므로 서블릿이 보호됩니다.
  5. 작업하는 동안 사용자는 가비지 할당 기술로 메모리를 해제하는 것에 대해 걱정할 필요가 없습니다.
  6. 서블릿은 모든 라이브러리를 사용할 수 있으므로 모든 기능을 제공합니다. 애플릿 및 기타 메커니즘과 쉽게 통신할 수 있습니다.

원천

서블릿의 단점

서블릿의 한계는 다음과 같이 논의됩니다.

  1. 한 번에 하나의 서블릿만 JVM에 로드될 수 있습니다. 따라서 요청 횟수가 중요하다고 말할 수 있습니다.
  2. 요청이 있을 때 스레드만 있을 수 있습니다. 거기에는 어떤 프로세스도 존재하지 않아야 합니다.
  3. 서블릿을 설계하는 것은 비용이 많이 들고 때로는 상당히 문제가 됩니다.
  4. 서블릿을 실행하려면 서버에서 JRE(Java Runtime Environment)와 같은 브라우저의 다른 설정이 필요합니다.

또한 읽기: Java 프로젝트 아이디어 및 주제

세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

디지털 세계의 현대 시대에 기술과 인터넷은 모두의 원동력이 되었습니다. 인터넷이 불안합니다. 매초마다 많은 양의 데이터를 전송하느라 분주합니다.

그러나 데이터의 대량 전송으로 인해 속도도 필요하므로 인터넷 속도가 느려집니다. 따라서 동적 사이트는 소프트웨어 개발자가 만듭니다. 이 사이트는 매 순간 변경되고 업데이트됩니다. Java 및 개발의 Servlet에 대해 자세히 알아보려면 전체 스택 소프트웨어 개발에서 upGrad의 Executive PG Program을 확인하고 여정을 시작하십시오.

이 글의 주된 동기는 독자들이 서블릿에 대한 기본적인 개념을 이해할 수 있도록 서블릿의 기본 개념을 제공하는 것입니다.

당신의 꿈의 직업에 착륙

풀 스택 개발의 Executive PG 프로그램에 지금 지원하십시오