编程语言
首页 > 编程语言> > java – 当项目打包在WAR中时,修改Servlet 3.0中的WebInitParam

java – 当项目打包在WAR中时,修改Servlet 3.0中的WebInitParam

作者:互联网

在我的项目中,我使用的是Servlet 3.0,我尝试使用注释.

要初始化DB的连接参数,我在servlet中使用它:

@WebServlet(name = "FrontServlet", urlPatterns = {"/index"},
        initParams = {
        @WebInitParam(name = "userDB", value = "root"),
        @WebInitParam(name = "passwordDB", value = "*****")})

现在,当我在WAR中打包项目时,我没有web.xml,因此我无法像以前那样使用较旧的servlet版本编辑init参数.

我的问题是,当项目打包在WAR中时,我可以编辑我的init参数吗?如果有,怎么样?否则,我应该使用什么方法来存储我的init参数,并能够在WAR中修改它们?

如果可能的话,我想避免重新创建包含所有URL模式的整个web.xml等…

编辑:

最后我保持:

@WebServlet(name = "FrontServlet", urlPatterns = {"/index"})

我使用Properties加载DB参数,使用getClass()访问配置文件.getClassLoader().getResourceAsStream(“servlet / config / config.ini”)

解决方法:

AFAIK没有标准的方法来在运行时修改init参数.此外,将配置放在那里是一种不好的做法,尤其是将数据库凭证放在明文中.

通常,最佳做法是将配置放在外部文件中.它可能是一些自定义属性或xml文件.

对于数据库连接,通常使用JNDI.所以基本上在代码中你寻找JNDI资源,而JNDI本身在容器级别配置.谷歌找到了很多例子,如何通过JNDI为Jetty,Tomcat,JBoss等配置数据库连接.

标签:java,servlets,servlet-3-0
来源: https://codeday.me/bug/20190530/1183339.html