在web应用中,一些数据库连接参数或者系统本身的参数通常不是写在程序中的,需要保存成属性文件的形式或者XML文件的形式。二者各有优缺点,属性文件的形式操作和管理比较简单,XML文件形式则能提供很强大,并且层次性很好的属性文件的配置。
下面讲解在web应用中通过属性文件的方式来记录一些重要的参数。
下面的例子以一个数据库连接参数为例子,开发环境是Eclipse,部署环境是Tomcat。
属性文件内容如下所示:
init.properties
-------------------------------------------------------------
drivers=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:test
username=testuser
password=test
-------------------------------------------------------------
访问该属性文件的代码:
InitPropertiesLoader.java
-------------------------------------------------------------------
package com.knight.commons
public class InitPropertiesLoader
{
/**
* 直接读取classpath中的属性文件
* @param filename 文件名称和路径
* @return
*/
public Properties getProperties(String filename)
{
Properties prop = new Properties();
InputStream in = null;
try
{
in = getClass().getResourceAsStream(filename);
prop.load(in);
}
catch (Exception e)
{
log.info("无法正确读取数据库连接配置属性文件!");
}
finally
{
try
{
if (in != null)
{
in.close();
}
}
catch (Exception e)
{
}
}
return prop;
}
}
-------------------------------------------------------------------
ConnectionManager.java
-------------------------------------------------------------------
package com.knight.commons.database
public class ConnectionManager
{
private static String driverName = null;
private static String url = null;
private static String username = null;
private static String password = null;
private static Properties prop = null;
public void init()
{
try
{
prop = new InitPropertiesLoader().getProperties("/init.properties");
driverName = prop.getProperty("drivers");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
}
catch (Exception e)
{
log.info("读取属性配置文件时出错!");
}
finally
{
try
{
if (prop != null)
prop.clear();
}
catch (Exception e)
{
log.info(e.getMessage());
}
}
}
public static Connection getConnection()
{
Connection conn = null;
//初始化数据库连接参数
init();
try
{
Class.forName(driverName);
conn = DriverManager.getConnection(url, username, password);
}
catch (Exception e)
{
log.info("There is some error when you get a connection.");
log.info(e.getMessage());
}
return conn;
}
}
-------------------------------------------------------------------
上面就是涉及到的几个主要文件,为了既能在IDE环境中使用该属性配置文件,又能在实际的web应用中保证该属性文件的正常调用。该属性文件存放的位置很重要。
"/init.properties"表示该属性文件存放在CLASSPATH的跟目录中,在Eclipse环境下存放在工程/bin下。
在web应用中init.properties存放在当前应用的WEB-INF/classes目录下。更简单的处理方式是将init.properties打到工程的包中。这样,当多个应用部署在同一个Context下时,相互之间能够保持独立性。但是这时候千万要注意同一个Context下多个应用的属性文件是否文件命名冲突。
附打包后目录的层次:
/
init.properties
/com/knight/commons
InitPropertiesLoader.class
/com/knight/commons/database
ConnectionManager.class
分享到:
相关推荐
13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 13.2.2 [jsp:setproperty] 413 13.2.3 [jsp:getproperty] 414 13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 ...
13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 13.2.2 [jsp:setproperty] 413 13.2.3 [jsp:getproperty] 414 13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 ...
13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 13.2.2 [jsp:setproperty] 413 13.2.3 [jsp:getproperty] 414 13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 ...
13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 13.2.2 [jsp:setproperty] 413 13.2.3 [jsp:getproperty] 414 13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 ...
11. Context参数:Context参数是Web应用的全局参数,可以在web.xml文件中配置。可以使用application对象来获取这些参数。 12. 表单提交:HTML中的表单可以使用post或get方法提交数据,提交地址可以是Servlet、jsp或...
总的来说,Struts-menu是一个强大的工具,它通过XML配置文件简化了Java Web应用中菜单的创建和管理。通过理解其基本结构、集成步骤以及如何在JSP中使用标签库,我们可以轻松地在Struts应用中实现动态菜单功能。对于...
-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --> <select id="selectUsers" parameterType="string" resultMap="resultListUser"> select * from user where userName like #{userName} ...
你可以包含Web应用的所有资源,如Servlet类、JSP文件、WEB-INF目录等。 `delete`任务用于删除文件或目录,这对于清理构建过程中的临时文件非常有用。你可以通过`fileset`或`dirset`元素来指定要删除的文件或目录。 ...
Servlet和Struts2是两种在Java Web开发中广泛使用的框架,它们在构建动态Web应用程序时起着关键作用。Servlet是Java EE规范的一部分,提供了一种服务器端编程模型,用于处理HTTP请求并生成响应。而Struts2是一个基于...
- 将`<Server>`元素的`port`属性改为`11005`。 - 开启JK2 AJP connector,并关闭其他connector(通过注释掉或删除它们)。 - 修改JK2 AJP connector的端口号为`11009`。 - 添加支持会话复制的`ReplicationValve`...
它能够提供基于Java的Web应用环境,支持Servlet和JSP(Java Server Pages)运行。本文主要讲解了如何在Tomcat中配置多端口域名访问,并且详细介绍了如何开启gzip压缩,以提高Web应用的性能和响应速度。 首先,我们...
整体结构和一些主要职责(如数据库操作 事务跟踪 安全等),剩余的就是变化的东西,针对这个领域中具体应用产生的具体不同 的变化需求,而这些变化东西就是 J2EE 程序员所要做的。 由此可见,设计模式和 J2EE 在思想...