编程语言
首页 > 编程语言> > java-@WebServlet具有来自xml的初始化参数

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

作者:互联网

我正在检查Web Servlet的新注释,但是我不明白如何从易于修改的位置传递初始参数(init-param).是的,我发现了@WebInitParam批注,但这意味着您必须将值写入代码,我想这没有抓住web.xml中易于更改的要点.

那这里怎么办?在这种情况下不要使用@WebServlet?

解决方法:

一个有趣的用例,事实证明您可以(我的配置:JBoss 7.1.1):

Servlet:

@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内部(请注意名称相同,并且未指定< 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的模块化”.

标签:servlets,web-xml,init-parameters,java
来源: https://codeday.me/bug/20191122/2061934.html