4

私のプロジェクトでは、サーブレット3.0を使用しており、アノテーションを使用しようとしました。

DBの接続パラメータを初期化するには、サーブレットでこれを使用します。

@WebServlet(name = "FrontServlet", urlPatterns = {"/index"},
        initParams = {
        @WebInitParam(name = "userDB", value = "root"),
        @WebInitParam(name = "passwordDB", value = "*****")})

プロジェクトをWARにパッケージ化したとき、web.xmlがないため、以前のバージョンのサーブレットで行っていたようにinitパラメーターを編集できません。

私の質問は、プロジェクトがWARにパッケージ化されているときに、initパラメーターを編集できますか?はいの場合、どのように?それ以外の場合、initパラメータを保存し、WARでそれらを変更できるようにするには、どのようなアプローチを使用する必要がありますか?

可能であれば、すべてのURLパターンなどを使用してweb.xml全体を再作成することは避けたいと思います...

編集 :

最後に私は保ちました:

@WebServlet(name = "FrontServlet", urlPatterns = {"/index"})

そして、プロパティを使用してDBパラメータをロードし、設定ファイルにアクセスします。getClass().getClassLoader().getResourceAsStream("servlet/config/config.ini")

4

2 に答える 2

4

サーブレット3.0では、注釈がデフォルトを提供しますが、これらはweb.xmlでオーバーライドできるため、以下をweb.xmlに追加してパラメーターを変更できます。

  <servlet>
    <servlet-name>FrontServlet</servlet-name>
    <servlet-class>fully.qualified.ClassName</servlet-class>
    <init-param>
      <param-name>passwordDB</param-name>
      <param-value>NewValue</param-value>
    </init-param>
  </servlet>

少なくともTomcatでは、クラス名とサーブレット名を指定する必要があります。マージコードをさらに調べることなく(私が作業してからしばらく経ちます)、そのうちの1つで十分です。今のところ、両方を使用する必要があります。

于 2012-05-09T11:29:59.243 に答える