初始化參數我檢查新的註釋爲Web 的servlet但我不明白你怎麼可以傳遞容易修改位置初始參數(init-param
)。是的,我發現註釋@WebInitParam
,但這意味着你必須寫入代碼的價值,我猜想在web.xml中輕鬆更改的點。@WebServlet從XML
那麼什麼是在這裏處理?在這種情況下不要使用@WebServlet
?
初始化參數我檢查新的註釋爲Web 的servlet但我不明白你怎麼可以傳遞容易修改位置初始參數(init-param
)。是的,我發現註釋@WebInitParam
,但這意味着你必須寫入代碼的價值,我猜想在web.xml中輕鬆更改的點。@WebServlet從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的模塊化」。
是的,你可以。
在你常數文件
public static String SOME_STRING= "stringVal";
,然後導入它的servlet
import static something.Constants.SOME_STRING;
@WebInitParam(name=SOME_STRING ,.....)
現在你只Constants
您的所有需求而改變。
可以SOME_STRING動態加載?即。不是最終的? – JIV
我粘貼mine.You可以通過刪除最終修飾符來分配它們。我做的是我有一個配置xml,我部署時使用了一個servlet它通過指定啓動時的加載來運行它。在那裏所有的fieds都被填充。 –
在web應用程序的啓動對servlet可見後,您是否詢問是否對web.xml進行了更改? –
約翰:不要,再讀q。 – JIV