java - @WebServlet 带有来自 xml 的初始化参数

标签 java servlets web.xml init-parameters

我正在检查 web servlet 的新注释,但我不明白如何从易于修改的位置传递初始参数 (init-param)。是的,我找到了注解 @WebInitParam,但这意味着您必须将值写入代码,我想这忽略了 web.xml 中轻松更改的要点。

那么这里有什么交易?在这种情况下不要使用@WebServlet吗?

最佳答案

一个有趣的用例,事实证明你可以(我的配置: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>"
        );
    }
}

内部web.xml (注意 name 是相同的,并且没有指定 <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") 的值设置为 flop ,如 web.xml 中指定!


顺便问一下,我想知道这是 JBoss 的特性还是标准。 是标准的,见Servlet 3.0 specification ,第 8.2.1 章“web.xml 的模块化”。

关于java - @WebServlet 带有来自 xml 的初始化参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19023240/

相关文章:

java - 将属性放回到java中的请求中

java - Spring应用程序上下文: access web. xml上下文参数?

mysql - 错误消息 : Unable to get connection, 数据源无效: "java.sql.SQLException: Cannot create JDBC driver of class ' ' 对于连接 URL 'null' ”

java - 在 Java 中将十六进制字符串转换为 int

具有多种数据类型的 Java 数组

java - 从 ViewModel 启动 DialogFragment 的推荐方法是什么?

java - 使用Java中的doGet()编写HTML代码

java - 使用 Java servlet 时何时打开以及何时关闭 mysql 连接?

jsp - EL 表达式未在 JSP 中计算

java - 汉诺塔,工作但不应该