자바 웹 2

Dear·2025년 6월 4일

TIL

목록 보기
35/74

💙 프로젝트 구조

web.xml(배포서술자)

웹 애플리케이션의 환경설정 정보를 담은 파일
WAS가 처음 구동될 때 이 파일을 읽어 설정 내용을 톰캣에 적용

💙 JSP 페이지 예외처리

  • 404 : 요청한 JSP 페이지가 없을 때 발생하는 오류
  • 500 : 컨테이너에서 JSP 페이지 처리 중에 오류가 발생할 때 표시되는 오류

web.xml에서 에러 코드에 대한 예외 처리 페이지 설정 가능

💙 JSP welcome 파일 지정

web.xml에 등록해 두면 브라우저에서는 컨텍스트 이름만으로 요청하여 간단하게 표시가 가능
여러 개의 welcome 파일 지정이 가능

💙 Context

server.xml에 등록하는 웹 애플리케이션

톰캣이 인지하는 하나의 애플리케이션

▪ 웹 애플리케이션 당 하나의 컨텍스트 등록
▪ 웹 애플리케이션 이름과 같을 수도 있고 다를 수 도있음
▪ 컨텍스트 이름 중복 불가
▪ 대소문자 구분

💙 서블릿(Servlet)

서버 쪽에서 실행되면서 클라이언트 요청에 따라 동적으로 서비스를 제공하는 자바 클래스

서블릿은 독립적으로 실행되지 못하고 톰캣과 같은 JSP/servlet 컨테이너에서 실행된다.

특징

▪ 서버 쪽에서 실행되면서 웹 브라우저 요청 시 기능을 수행
▪ 기존 정적 웹프로그램의 문제점을 보완하여 동적인 기능을 제공
▪ 모든 메소드는 스레드 방식으로 실행
▪ 자바로 만들어져 자바의 특징(객체지향)을 가짐
▪ 컨테이너에서실행
컨테이너 종류에 상관없이 실행 –> 플랫폼독립적
▪ javax.servlet.http 패키지의 HttpServlet 클래스를 상속받음

💙 서블릿 컨테이너

스스로작동할수없는서블릿을관리하는컨테이너

통신지원

클라이언트와 통신하기 위해 특정 포트로 소켓을 열고 I/O 스트림을 생성하는 등 복잡한 과정을 간단히 해주는 API를 제공

수명주기관리

서블릿을 인스턴스화한 후 초기화하고, 요청에 맞는 메소드를 호출한다. 응답후가비지컬렉션을통해객체를소멸

멀티스레딩관리

서블릿 요청들은 스레드를 생성해 처리한다.
멀티 스레드 방식으로 여러 요청을 동시에 처리 가능하다.

선언적인 보안 관리 및 JSP 지원

보안 기능을 지원하므로 별도로 구현하지 않아도 된다.

💙 Servlet 생명주기

클라이언트가 서블릿에 요청을 보내면, 서블릿도 자바 클래스이기 때문에 먼저 초기화 과정을 거치고, 메모리에 인스턴스가 생성된 뒤 요청에 대한 서비스를 수행한다.
요청 처리가 끝나면 서블릿은 소멸 과정을 거치며 메모리에서 제거된다.
각 과정에서 호출되어 기능을 수행하는 메서드들이 서블릿 생명주기 메서드이다.

서블릿 생명주기 메서드
서블릿 실행 단계마다 호출되어 기능을 수행하는 콜백 메서드

  1. 요청 시 서블릿 객체 생성
  2. 서버는 init() 메소드를 호출하여 서블릿을 초기화
  3. service() 메소드를 호출해서 서블릿이 브라우저의 요청을 처리
  4. service() 메소드는 특정 HTTP 요청(GET, POST 등)을 처리하는 메소드
    • 예: doGet(), doPost() 등 호출
  5. 서버는 destroy() 메소드를 호출하여 서블릿을 제거

💙 서블릿 기능 수행과정

클라이언트로부터 요청을 받아 비즈니스 로직을 처리하고, 그 결과를 다시 클라이언트에게 돌려주는 과정

요청이나 응답과 관련된 API는 모두 javax.servlet.http 패키지에 있다

profile
친애하는 개발자

0개의 댓글