dbConnection问题,从web.xml读取context-params

时间:2009-06-29 19:02:15

标签: oracle jsp javabeans ora-01017

我有一些jsp代码从web.xml文件中读取Servlet Context参数。这些参数保存数据库连接信息,因此每次SID或用户/密码或服务器名称更改时,程序员都不必重新编码;用户只需更改web.xml文件即可。

<context-param>
    <description>database user name</description>
    <param-name>user</param-name>
    <param-value>guest</param-value>
</context-param>

<context-param>
    <description>database password</description>
    <param-name>password</param-name>
    <param-value>1234</param-value>
</context-param> 

我使用bean类代码的这一部分阅读了这些内容:

String user = servletContext.getInitParameter("user");
String pass = servletContext.getInitParameter("password");

问题:

接下来我想做数据库连接以检索一些数据:

Class.forName("oracle.jdbc.driver.OracleDriver");
dbConnection = DriverManager.getConnection(conn_url, user, pass);

其中conn_url是由主机名(或IP地址)和端口号组成的字符串。

无论如何,dbConnection都会失败:

java.sql.SQLException: ORA-01017: invalid username/password; logon denied

即使我回应出String值是什么,它们应该是什么。

如果我去说:

user = "guest";
pass = "1234";

直接分配它们然后它工作正常。

我不明白。我整天都在喋喋不休。很明显,getConnection会查找3个字符串。我很茫然。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我已经完成了,它对我有用。 我分享我的代码:在web.xml中我这样写:

 <context-param>
    <description>user name</description>
    <param-name>user</param-name>
    <param-value>postgres</param-value>
</context-param>
<context-param>
    <description>password</description>
    <param-name>password</param-name>
    <param-value>samdx</param-value>
</context-param>

在Servlet文件中:

ServletContext context = getServletContext();
            String name = context.getInitParameter("user");
            String password = context.getInitParameter("password");

con = DriverManager.getConnection(url,name, password);

试试这样。不要从web.xml获取值。

String name="guest"
String password="1234"
dbConnection = DriverManager.getConnection(conn_url,name, password);