什么是getServletContextLocal()和getServletContextProvider()

时间:2011-06-17 14:28:07

标签: java portlet spring-portlet-mvc portletbridge

在我阅读的教程中,我遇到了getServletContext(),但是这两个是什么? 这就是这条线的样子:

ServletContext sc = getServletContextProvider().getServletContextLocal(); 

这有什么不同于:

 ServletContext sc = getServletContext();

1 个答案:

答案 0 :(得分:0)

您的答案特定于可能实施ServletContextProvider接口的类。为了正确回答这个问题,您需要提供声明ServletContextProvider的包,或者更有用的包含getServletContextProvider()getServletContext()方法的类或接口(声明或抽象) )。

对我们来说更容易,提供您引用的教程的链接,或一些其他上下文(没有双关语)。在互联网上(Google搜索之后)对getServletContextLocal方法的唯一引用是此问题或此问题的副本。

假设getServletContextProvider()返回ServletContextProvider类或接口,则该名称可以使用多个接口和类;我将通过我找到的每一个:

  1. 界面org.apache.portals.bridges.common.ServletContextProvider没有getServletContextLocal()方法。
  2. 界面com.liferay.portal.kernal.servlet.ServletContextProvider没有getServletContextLocal()方法;所述接口的实现者LiferayServletContextProvider没有getServletContextLocal()方法,并扩展了Object。
  3. ca.grimoire.maven.ServletContextProvider没有getServletContextLocal()方法,它实现的ResourceProvider接口也没有,它扩展了Object。
  4. 接口org.atmosphere.di.ServletContextProvider没有getServletContextLocal()方法,也没有列出该链接上的4个实现类。
  5. com.atlassian.jira.web.ServletContextProvider没有getServletContextLocal()方法,并扩展了Object。
  6. 抽象类org.kaleidofoundry.core.web.ServletContextProvider没有getServletContextLocal()方法。
  7. 结论:您输入的内容可能是您阅读的教程中的拼写错误,可能是引用了最常用的可用界面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变量的分配位置。

    帮自己一个忙,并引用您所指的教程的位置。