0

私が読んだチュートリアルで getServletContext() に出くわしましたが、これら2つは何のためですか?
これは、行がどのように見えるかです:

ServletContext sc = getServletContextProvider().getServletContextLocal(); 

これはどのように違うのですか:

 ServletContext sc = getServletContext();
4

1 に答える 1

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()

結論:入力した内容は、読んだチュートリアルのタイプミスである可能性が高く、おそらくメソッドorg.apache.portals.bridges.common.ServletContextProviderを持つ最も一般的な利用可能なインターフェイスを参照していgetServletContext(GenericPortlet portlet)ます。チュートリアルが意図していた可能性が高いのはgetServletContextProvider().getServletContext(local)local変数がクラスを拡張する場所javax.portlet.GenericPortletです。getServletContext(local)メソッドは、その変数に関連付けられた を返しますjavax.servlet.ServletContextjavax.servlet.ServletContextによって返されるものと同じかどうかは、変数が割り当てられgetServletContext()た場所によって異なります。GenericPortlet

参考にして、参照しているチュートリアルの場所を引用してください。

于 2013-02-22T19:42:34.480 に答える