当使用注释而不是web.xml文件时,如何处理通常可以从ServletConfig对象读取的servlet /config参数?即
@WebFilter("/sample")
public class MyServlet {
public void init() throws ServletException {
String value = getServletConfig().getInitParameter("key");
// or
value = getServletContext().getInitParameter("key");
}
}
或者在过滤器的情况下:
public class MyFilter implements Filter {
public void init (FilterConfig filterConfig) throws ServletException {
filterConfig.getInitParameter("key");
}
}
更新:我知道您可以在注释中硬编码配置参数,但我不想将配置设置硬编码到代码中。例如,这个servlet不能在两个应用程序之间共享:
@WebFilter("/sample", initParams = {@InitParam(name = "database_host", value = "blah.com")})
public class MyServlet {
public void init() throws ServletException {
String value = getServletConfig().getInitParameter("database_host");
}
}
发布于 2012-10-16 03:52:19
@WebServlet(name = "TestServlet", urlPatterns = {"/test"},
initParams = {@WebInitParam(name="key", value="value")})
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String key= getInitParameter("key");
}
}
编辑:
要回答您更新的问题,您有两个选项:
web.xml
的init params的旧模式发布于 2012-10-16 03:49:37
我想这就是你的意思
@Servlet(urlMappings={"/MyApp"}, initParams ={@InitParam(name="lang", value="english")})
public class MyServlet {
您可以参考这个Servlet3.0简介
https://stackoverflow.com/questions/12907232
复制相似问题