JIV*_*JIV 3 java web.xml servlets init-parameters
我正在检查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>"
);
}
}
Run Code Online (Sandbox Code Playgroud)
内部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>
Run Code Online (Sandbox Code Playgroud)
的值flip = getInitParameter("flip")
设定为flop
,在指定的web.xml
!
顺便说一句,我想知道这是JBoss的功能还是标准功能。它是标准的,请参阅Servlet 3.0规范,第8.2.1节“ web.xml的模块化”。