1

サーブレットのみをホストする小さなプロビジョニング サーバーがあります。tomcat でホストされています。サーブレットを変更せずに変更できるように、構成可能または外部にしたいサーブレットにハードコードされた値はほとんどありません。私のオプションは何ですか?

4

4 に答える 4

1

私が考えることができるオプション:

  1. サーブレットに固有の場合は、DD (web.xml) でサーブレットの初期化パラメーターとして定義するか、注釈を使用して定義します。このOracleチュートリアルを見てください
  2. Web アプリ全体で共通の場合は、DD (web.xml) でコンテキスト パラメーターとして定義するか、注釈を使用して定義します。
  3. それらを外部プロパティ ファイルで定義します。次に、クラスパスに保持されているプロパティ ファイルをロードできます。

Java EE 7 チュートリアル - サーブレット (サーブレット 3.1)

PS:私はあなたにポインタを与えました.インターネットで簡単にそれを達成する方法の例を得ることができます.

于 2013-07-18T06:05:39.393 に答える
1

いくつかのオプションがあります:

  • 値がサーブレット固有の場合、デプロイメント記述子 ( web.xmlファイル)でそれらをServlet Init-Parameterとして構成できます。

    <servlet>    
        <servlet-name></servlet-name>
        <servlet-class></servlet-class>
        <init-param>
            <param-name>${param-name}</param-name>
            <param-value>${param-value}</param-value>
        </init-param>
    </servlet>
    

    そして、それらを使用して取得しますServletConfig#getInitParameter(String):

    getServletConfig().getInitParameter(paramName);
    
  • 値がweb-app 固有の場合は、コンテキスト パラメーターとして構成できます。

    <web-app ...>
        <context-param>
            <param-name>${param-name}</param-name>
            <param-value>${param-value}</param-value>
        </context-param>
    </web-app>
    

    そして、それらを使用して取得しますServletContext#getInitParameter(String):

    getServletContext().getInitParameter(paramName);
    
  • もう 1 つのオプションは、これらの値をプロパティ ファイルに格納し、そこから値をサーブレットにロードすることです。プロパティ ファイルを Web-App クラスパスに追加できます (フォルダー内に配置でき/WEB-INF/classesます。Eclipse IDE を使用している場合は、/srcフォルダー内に配置し、リソースとしてロードします。

    Properties props = new Properties();
    props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("webapp.properties"));
    

関連項目:

于 2013-07-18T06:08:58.150 に答える
0

誰もが言ったように、多くの方法があります.これは別のアプローチです(これは私が今していることです)

A Constants Class(公開Static文字列定数)

たとえば、veriosn 名、支店名などXMl と呼ばれるファイルproperties.xml

<property name="version">XX..XX</property>
<property name="branch">XX.13.</property> 

web.xml

    <servlet>
    <servlet-name>StartUpServlet</servlet-name>
    <display-name>StartUpServlet</display-name>
    <servlet-class>com.nextenders.server.StartUpServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
    </servlet>

そのサーブレットは、起動時に実行されますtomcat

と私StartUpServlet

public class StartUpServlet extends  HttpServlet{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    public void init() throws ServletException {
        super.init();
        setVersion();  //I'l parse that file and assign constants.And use else where


    } 

したがって、アプリに触れずに、プロパティを変更しxmlて再起動しますApp.

于 2013-07-18T06:17:03.967 に答える
0

web.xml で構成できるサーブレットに init パラメータを提供できます。このチュートリアルは、必要なものを達成するのに役立ちます。

http://www.javatpoint.com/servletconfig

于 2013-07-18T06:05:59.987 に答える