如何在Eclipse中的web.xml中添加Context参数?

时间:2015-07-16 19:08:45

标签: java eclipse web.xml

我正在使用Eclipse Mars(版本:Mars Release(4.5.0))。

基本上我正在开发一个小型Web应用程序,它具有登录表单和注册新用户的链接。

在这里,我应该多次与我的数据库进行交互,以验证登录详细信息和注册新的用户详细信息。

所以我想在web.xml中的上下文参数中添加数据库详细信息(如驱动程序,URL,用户名,密码)以避免HardCoding?我该怎么做?谢谢。

1 个答案:

答案 0 :(得分:0)

web.xml不是将这类数据保存为登录/密码/驱动程序等的优雅方式。

您可以为这种数据实施的方法很少。

JNDI方法
配置取决于您现在使用的Web容器/服务器。正如您所提到的,这是一个简单的Web应用程序,您可以使用Tomcat,所以请参阅此处以获取更多详细信息和示例: Tomcat and JNDI

存储在属性文件方法中的配置
您需要将这些数据存储在名为db.properties

的属性文件中
#Properties structure
db.url=your_db_url
db.driver=your_db_driver
db.login=your_db_login
db.password=your_db_password

此文件应放在src/resources目录中。因此,在制作webapp包之后,它应该位于Web应用程序的WEB-INF/classes路径中

db.properties应以某种方式加载到您的代码中,例如:

Properties prop = new Properties();
InputStream input = null;

try {

    input = new FileInputStream("db.properties");

    // load a properties file
    prop.load(input);

    // get the property value and print it out
    String url = prop.getProperty("db.url");
    String driver = prop.getProperty("db.driver");
    String login = prop.getProperty("db.login");
    String password = prop.getProperty("db.password");

    //Your code to connect to db
} catch (IOException ex) {
    ex.printStackTrace();
} finally {
    if (input != null) {
        try {
            input.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

可以定义更多方法,但一切都取决于您实际工作的框架。

处理这个可能就像一个指导方针而不是一步一步。这取决于你使用哪种方式。