서브렛-jsp 입문부터 정통까지(3)
서브렛 API에는 서브렛Context, HttpSession, 서브렛Request 객체의 라이프 사이클 이벤트를 수신할 수 있는 8개의 모니터 인터페이스가 정의되어 있습니다.
:
Web DataSource , ServletContext
: , ,web Session 。 Session ,Servlet , Session 。 , 。
원본 데이터와 목적 데이터 사이의 필터 역할을 하는 중간 구성 요소는 웹 용기가 자원에 대한 요청을 받을 때 필터가 이 자원과 관련이 있는지 판단합니다. 만약 있다면 용기는 요청을 필터에 맡겨 처리합니다.필터에서 요청의 내용을 바꾸거나 요청의 헤더 정보를 다시 설정한 다음 요청을 목표 자원에 보낼 수 있습니다.대상 자원이 요청에 응답할 때 용기 역시 응답을 필터에 전달합니다.클라이언트에게 보냅니다.
Filter 커넥터
FilterConfig 인터페이스
필터 구성
REQUEST,INCLUDE,FORWARD,ERROR
dispatcher:
대형 웹 응용 프로그램에서 서브렛 용기는 여러 클라이언트의 수천 개의 요청을 동시에 수신할 수 있으며, 여러 라인으로 모든 요청을 동시에 처리할 수 있다.
다중 스레드 서브렛 모델
서브렛 용기는 하나의 스레드 탱크 서비스 요청을 유지한다. 스레드 탱크는 실제적으로 실행 코드를 기다리는 스레드이다. 이런 스레드를 작업 스레드라고 한다. 서브렛 용기는 스케줄러 스레드를 사용하여 작업자 스레드를 관리한다. 용기가 서브렛에 접근하는 요청을 받으면 스케줄러 스레드는 스레드 탱크에서 작업자 스레드를 선택하여 요청을 전달한다.그런 다음 이 스레드에서 서브렛의 서비스 () 방법을 실행합니다.서브렛은 단일 예이므로 모든 서브렛의 서비스 방법은 여러 스레드에서 동시에 실행됩니다.서브렛 컨테이너는 단일 인스턴스 다중 스레드 방법을 사용하여 서브렛 인스턴스의 오버헤드를 최소화하고 요청에 대한 응답 시간을 크게 향상시킵니다.
서브렛Context는 스레드가 안전하지 않습니다.
우리는 서브렛 상하문에서 수정된 데이터만 적게 저장하고 다른 자주 수정해야 하는 데이터에 대해서는 여러 서브렛에서 HttpSession을 공유하는 다른 방식이 안전하지 않다는 것을 합리적으로 설계해야 한다.Http Session은 같은 Session에 속하는 요청을 처리하는 라인에서만 접근할 수 있지만 사용자는 같은 프로세스에 속하는 여러 개의 브라우저 창을 열 수 있습니다. 이 창의 접근 요청은 같은 Session에 속합니다. 여러 개의 요청을 동시에 처리하기 위해 서브렛 용기에서 여러 개의 라인을 만들고 여러 라인이 동시에Session에 접근할 수 있습니다.이 문제를 해결하기 위해 세션 액세스를 동기화할 수 있습니다.
synchronized(session){
}
ServletRequest 스레드는 안전합니다.서브렛 컨테이너가 수락한 모든 요청에 대해 새 서브렛 Request 객체를 작성하므로 서브렛 Request 객체는 스레드에 액세스하기 위한 것입니다.
모범 사례:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.