如果用getInitParameter()的话,确实是读取WEB-INF/web.xml的参数(Servlet 3.0以后,也可以读取@WebServlet或@WebFilter注解里的参数)。我觉得,比起读取类中的成员,读web.xml唯一的好处是: 类修改了还需要编译和部署,但web.xml修改后自动触发ServletContext重启,不需要编译,会很方便。 另外,项目复杂的话,初始化参数(如数据库连接串、依赖的外部API地址、第三方接口帐号等)的来源会是多样的,比如: Spring等框架规定的容器 服务器上其他位置的配置文件 数据库或其他存储 配置中心 总之,与环境相关的配置,无论写在代码里还是写在web.xml里,似乎都不是很好的选择。
如果用
getInitParameter()
的话,确实是读取WEB-INF/web.xml
的参数(Servlet 3.0以后,也可以读取@WebServlet
或@WebFilter
注解里的参数)。我觉得,比起读取类中的成员,读web.xml唯一的好处是:
类修改了还需要编译和部署,但web.xml修改后自动触发ServletContext重启,不需要编译,会很方便。
另外,项目复杂的话,初始化参数(如数据库连接串、依赖的外部API地址、第三方接口帐号等)的来源会是多样的,比如:
总之,与环境相关的配置,无论写在代码里还是写在web.xml里,似乎都不是很好的选择。