ServletContext - один для каждого веб-приложения или один для JVM? - PullRequest
7 голосов
/ 03 февраля 2010

Вот сомнение, которое у меня возникло, ServletContext - один на веб-приложение и один на JVM. Но если я использую несколько веб-приложений на одной и той же JVM. Тогда это имеет 2 ServletContext на JVM. Является ли это возможным? Кто-нибудь может уточнить это?

Ответы [ 3 ]

8 голосов
/ 03 февраля 2010

Один для веб-приложения и один для JVM можно объяснить с помощью следующих таблиц.

Несколько веб-приложений на одном сервере (одна JVM):

Web App A - Server/JVM 1 - Context 1 
Web App B - Server/JVM 1 - Context 2 
Web App C - Server/JVM 1 - Context 3

Одно и то же веб-приложение на нескольких серверах (несколько JVM):

Web App A - Server/JVM 1 - Context 1 
Web App B - Server/JVM 1 - Context 2 
Web App C - Server/JVM 1 - Context 3 
Web App C - Server/JVM 2 - Context 4
7 голосов
/ 03 февраля 2010

Каждое веб-приложение будет иметь свой собственный ServletContext. api docs это выглядит так:

Существует один контекст для «веб-приложения» на виртуальную машину Java. («Веб-приложение» - это набор сервлетов и контента, установленных в определенном подмножестве пространства имен URL-адреса сервера, например / catalog, и, возможно, установленных через файл .war.)

Часть «для веб-приложения» означает, что если вы настраиваете приложение в кластере, то каждый узел в кластере имеет отдельную JVM, и эта JVM будет запускать отдельные копии всех приложений, включая ServletContext для каждого WebApp.

3 голосов
/ 03 февраля 2010

ServletContext

Существует один контекст для «веб-приложения» на виртуальную машину Java.

Это означает, что каждое веб-приложение имеет ровно один ServletContext на каждой виртуальной машине. (Случай с несколькими виртуальными машинами - это когда у вас есть распределенное приложение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...