
<c3p0-config>
<default-config>
<property name="initialPoolSize">10</property>
<property name="maxPoolSize">30</property>
<property name="driverClass">commysqljdbcDriver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day14</property>
<property name="user">root</property>
<property name="password">root</property>
</default-config>
<named-config name="itcast">
<property name="initialPoolSize">10</property>
<property name="maxPoolSize">30</property>
<property name="driverClass">commysqljdbcDriver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day14</property>
<property name="user">root</property>
<property name="password">root</property>
</named-config>
</c3p0-config>
这是c3p0的配置文件,其中上面那个config是默认的,下面的是你自己配置的,c3p0有两种创建方式,第一是:无参的,直接new,然后set它的四要素,如:setDriverClass(),setJdbcUrl()等;第二种就是你说的,它的参数就是你配置文件中起的名字,如要用到下面那个,就new ComboPooledDataSource(“itcast”);这种方式下完全不需要你自己读取配置文件。
希望对你有帮助。
(1)、requestgetRealPath("/");//不推荐使用获取工程的根路径
(2)、requestgetRealPath(requestgetRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用
(3)、requestgetSession()getServletContext()getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用
(4)、 thisgetClass()getClassLoader()getResource("")getPath();//获取工程classes 下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个 class。所以它应该是一个通用的方法。
0、关于绝对路径和相对路径
1基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例 如:C:xyz esttxt 代表了testtxt文件的绝对路径。>
读取配置文件 , xxxproperties放在webroot/WEB-INF/classes/目录下
首先将配置文件转换成InputStream,有两种方式,原理一样,都是通过类加载器得到资源:
(1)InputStream inputStream = ThreadcurrentThread()getContextClassLoader()getResourceAsStream("xxproperties");
(2) InputStream inputStream =
thisgetClass() getClassLoader()getResourceAsStream( "xxproperties" );
调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,
而后在类类型上调用 getClassLoader()方法是得到当前类型的类加载器,我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父 子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就 是保证是和类类型同一个加载器加载的。
最后调用了类加载器的getResourceAsStream()方法来加载资源。
(3) 然后加载配置文件,读取属性值
Properties prop = new Properties();
propload(input);
String value = propgetProperty("PropertyName");
inputclose();
这个问题有两种办法:
第一种办法:如楼上所说的那样也可以,就是native2ascii -reverse -encoding gb2312 userproperties ActionName_zh_CNproperties这样以后,你打开ActionName_zh_CNproperties的内容,再将ActionName_zh_CNproperties文件这样置:native2ascii ActionName_zh_CNproperties userChangeproperties 然后你的程序读userChangeproperties的内容就可以。
第二种办法是:
如你代码里写的,你可以在String username=propertygetProperty("username");之后,添加JAVA代码页可以将乱码转为中文的。用如下语句就可以了,resultName=new String(usernamegetBytes("ISO-8859-1"),"gbk"); 然后再用resultName就可以了,不过这样的话你下面的String password=propertygetProperty("password");
都慢慢的通过上面的java代码去转。
不知道你对反射熟悉不?如果熟悉的话可以通过反射机制去做第二种办法的转码就方便多了!
不要用userdir,这个是根据你的运行环境改变的。
我也做过很多有upload的项目,都是用property文件定义一个绝对路径去存放上传的文件的。服务器端没有必要使用相对路径。
客户端的东西都使用相对路径,因为对于客户端来说,绝对路径是服务器的绝对路径,客户端是不能访问的。
所以,不知道你为什么要在服务器端使用相对路径,对于web开发来说,是没有意义的。
用eclipse下找不到Property File是需要建立然后保存到对应路径的。
点击new-file
d出如下图所示对话框,选择好文件存放路径和文件名即可,别的文件
以上就是关于java 获取c3p0配置文件中所有 named-config的name全部的内容,包括:java 获取c3p0配置文件中所有 named-config的name、java程序读取资源文件时路径如何指定、Java 获取配置文件路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)