3

Webサーブレットの新しい注釈を確認していますがinit-param、簡単に変更できる場所から初期パラメーター ( ) を渡す方法がわかりません。はい、私は注釈を見つけまし@WebInitParamたが、それは値をコードに書き込む必要があることを意味します。これは、web.xml で簡単に変更するためのポイントを逃していると思います。

それで、ここで何をしますか?@WebServletこんな時は使いませんか?

4

3 に答える 3

5

興味深い使用例であり、できることがわかりました (私の構成: JBoss 7.1.1):

サーブレット:

@WebServlet(name="fooServlet", urlPatterns="/foo")
public class FooServlet extends HttpServlet
{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String flip = getInitParameter("flip");
        resp.getWriter().println("<html>" +
            "<head><title>" + getServletName() + "</title></head>" +
            "<body>From " + getServletName() + ": " + flip + "</body>" +
            "</html>"
        );
    }
}

内部(名前は同じで、noが指定されているweb.xmlことに注意してください):<servlet-class>

<servlet>
    <servlet-name>fooServlet</servlet-name>
    <init-param>
        <param-name>flip</param-name>
        <param-value>flop</param-value>
    </init-param>
</servlet>

の値flip = getInitParameter("flip")flopweb.xml!


ところで、これは JBoss の機能なのか、それとも標準なのか疑問に思っていました。これは標準です。サーブレット 3.0 仕様の 8.2.1 章「web.xml のモジュール性」を参照してください。

于 2013-09-26T09:06:08.220 に答える
-2

はい、できます。

定数ファイルで

public static String SOME_STRING= "stringVal";

そして、それをサーブレットにインポートします

import static something.Constants.SOME_STRING;

@WebInitParam(name=SOME_STRING ,.....)

これで、すべてのニーズに合わせて着替えることができConstantsます。

于 2013-09-26T08:42:06.337 に答える