Что такое getServletContextLocal () и getServletContextProvider () - PullRequest
0 голосов
/ 17 июня 2011

В уроках, которые я прочитал, я сталкивался с getServletContext (), но для чего эти 2?
Вот как выглядит линия:

ServletContext sc = getServletContextProvider().getServletContextLocal(); 

Чем это отличается от:

 ServletContext sc = getServletContext();

1 Ответ

0 голосов
/ 22 февраля 2013

Ваш ответ относится к классу, который, вероятно, реализует интерфейс ServletContextProvider.Чтобы правильно ответить на этот вопрос, вам нужно предоставить пакет, в котором объявлен ServletContextProvider, или, что еще более полезно, класс или интерфейс, который содержит методы getServletContextProvider() и getServletContext() (объявленные или абстрактные).

Еще проще для нас, предоставить ссылку на учебник, на который вы ссылаетесь, или какой-то дополнительный контекст (без каламбура).Единственными ссылками на метод getServletContextLocal в Интернете (после поиска в Google) являются либо этот вопрос, либо копии этого вопроса.

Если предположить, что getServletContextProvider() возвращает класс или интерфейс ServletContextProvider,несколько интерфейсов и классов, доступных с этим именем;Я рассмотрю все, что нашел:

  1. Интерфейс org.apache.portals.bridges.common.ServletContextProvider не имеет getServletContextLocal() метода.
  2. Интерфейс com.liferay.portal.kernal.servlet.ServletContextProvider не имеет getServletContextLocal() метода;Реализатор указанного интерфейса, LiferayServletContextProvider не имеет метода getServletContextLocal() и расширяет Object.
  3. Class ca.grimoire.maven.ServletContextProvider не имеет getServletContextLocal()метод, а также интерфейс ResourceProvider, который он реализует, и расширяет Object.
  4. Интерфейс org.atmosphere.di.ServletContextProvider не имеет метода getServletContextLocal(), равно как и 4реализующие классы, перечисленные в этой ссылке.
  5. Class com.atlassian.jira.web.ServletContextProvider не имеют getServletContextLocal() метода и расширяют Object.
  6. Abstract Class org.kaleidofoundry.core.web.ServletContextProvider не имеет getServletContextLocal() метода.

Вывод: То, что вы ввели, скорее всего, опечатка впрочитанное руководство, вероятно, ссылается на самый распространенный доступный интерфейс, org.apache.portals.bridges.common.ServletContextProvider, который имеет метод getServletContext(GenericPortlet portlet).Скорее всего, учебник намеревался написать getServletContextProvider().getServletContext(local), где переменная local - это класс, расширяющий javax.portlet.GenericPortlet.Метод getServletContext(local) затем возвращает javax.servlet.ServletContext, который был связан с указанной переменной.То же самое, что javax.servlet.ServletContext, что и getServletContext(), зависит от того, где была назначена переменная GenericPortlet.

Сделайте себе одолжение и укажите местоположение учебника, на которое вы ссылаетесь.

...