我正在使用Eclipse Mars(版本:Mars Release(4.5.0))。
基本上我正在开发一个小型Web应用程序,它具有登录表单和注册新用户的链接。
在这里,我应该多次与我的数据库进行交互,以验证登录详细信息和注册新的用户详细信息。
所以我想在web.xml中的上下文参数中添加数据库详细信息(如驱动程序,URL,用户名,密码)以避免HardCoding?我该怎么做?谢谢。
答案 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();
}
}
}
可以定义更多方法,但一切都取决于您实际工作的框架。
处理这个可能就像一个指导方针而不是一步一步。这取决于你使用哪种方式。