用struts1时,有个疑惑,在加载自己定义的配置文件,如:test.properties,从中读取某条信息(如xx.xxx = Y),如果是Y则继续,是N则跳转,有没有像servlet中的init()方法那样,只初始加载1次,以后再请求就不进行加载了?有的话在action中怎么写?谢谢了。
action继承自servlet应该有接口吧?
问题补充:
就像用servlet的时候,会常常写意一个xxx.properties来初始化时加载信息,在init()中定义,只加载一次,我的意思是能不能在struts1中某个地方在初始化actionservlet的时候,也加载一个自己定义的xxx.properties,然后根据这个xxx.properties的内容作一些相应的判断?谢谢!
action继承自servlet应该有接口吧?
问题补充:
就像用servlet的时候,会常常写意一个xxx.properties来初始化时加载信息,在init()中定义,只加载一次,我的意思是能不能在struts1中某个地方在初始化actionservlet的时候,也加载一个自己定义的xxx.properties,然后根据这个xxx.properties的内容作一些相应的判断?谢谢!
<description>init</description>
<display-name>MyConnection</display-name>
<servlet-name>MyConnection</servlet-name>
<servlet-class>util.MyConnection</servlet-class>
- <!-- init parameter
notice:
connecttype
0 direct connect
1 pool connect
-->
- <init-param>
<param-name>connecttype</param-name>
<param-value>0</param-value>
</init-param>
- <init-param>
<param-name>jdbcDriver</param-name>
<param-value>oracle.jdbc.driver.OracleDriver</param-value>
</init-param>
- <init-param>
<param-name>dbURL</param-name>
<param-value>jdbc:oracle:thin:@//10.224.3.70:1521/ora9i</param-value>
</init-param>
- <init-param>
<param-name>dbUser</param-name>
<param-value>SMIS</param-value>
</init-param>
- <init-param>
<param-name>dbPassword</param-name>
<param-value>SMIS</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
- <!-- DB ConnectionPool Config
-->
- <resource-ref>
<description>Oracle DB Connection Pool</description>
<res-ref-name>jdbc/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
* @author zy
* 直连数据库
*
* date:2008-12-2
* update 2008-12-4 zy
*/import java.sql.Connection;
import java.sql.SQLException;
/**
* @author zhangyun
*
*/
public class DirectConnection {
private Connection conn = null; private static String jdbcDriver = null; private static String dbURL = null; private static String dbUser = null; private static String dbPassword = null; /**
* @return Connection
*/
public Connection getConnection(String newjdbcDriver, String newdbURL,
String newdbUser, String newdbPassword) {
// 初始化
jdbcDriver = newjdbcDriver;
dbURL = newdbURL;
dbUser = newdbUser;
dbPassword = newdbPassword;// System.out.println("************ init DirectConnection : Get paramenters ! "); if (conn == null) {
connectOra9();
}
if (conn == null) {
System.out.println("Oracle的连接没有真正获得,连接为空!");
}
return conn;
} public void close() {
try {
if (!(conn == null)) {
conn.close();
}
conn = null;
} catch (SQLException e) {
System.out.println("关闭连接时出错,原因是:" + e.toString());
}
} private void connectOra9() { try {
System.out.println(jdbcDriver);
System.out.println(dbURL);
System.out.println(dbUser);
System.out.println(dbPassword); Class.forName(jdbcDriver);
java.util.Properties p = new java.util.Properties();
p.put("user", dbUser);
p.put("password", dbPassword);
conn = java.sql.DriverManager.getConnection(dbURL, p);
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
conn = null;
} }
}
或者在action的构造函数中写,因为struts1的action是单例的