我必须创建一个JSP,其中有一个屏幕可以连接数据库 运行时,意味着我必须在运行时提供数据库详细信息(瘦客户端/驱动程序信息等),然后连接并通过下一页进行处理,这是一个小规模应用程序(最多20个用户)所以我想知道如何管理连接
- 在Session中存储连接? - 在HashTable中,键为会话ID,值为连接? - 或运行时的一些连接池(我认为它不好).. - 或创建属性文件并在运行时进行更改并重新加载..
让我知道这种性能和设计的最佳方法。
此致 阿米特
答案 0 :(得分:4)
您可以在.properties文件中设置连接信息(数据库名称,密码,服务器地址等)。如下所示。
1)静态方式 config.properties (通常在classPath-src \ config.properties中创建)文件包含driver=com.mysql.jdbc.Driver
database=jdbc:mysql://localhost:3306/dbName
dbuser=root
dbpassword=root
您还可以创建或重置值
或 1)创建或设置动态属性文件。
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class App
{
public static void main( String[] args )
{
Properties prop = new Properties();
try {
//set the properties value
prop.setProperty("database", "localhost");
prop.setProperty("dbuser", "patel");
prop.setProperty("dbpassword", "password");
//save properties to project root folder
prop.store(new FileOutputStream("config.properties"), null);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
输出(config.properties)
dbpassword=password
database=localhost
dbuser=patel
2)现在是时候在运行时阅读它了。
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class App
{
public static void main( String[] args )
{
Properties prop = new Properties();
try {
//load a properties file
prop.load(new FileInputStream("config.properties"));
//get the property value and print it out
System.out.println(prop.getProperty("database"));
System.out.println(prop.getProperty("dbuser"));
System.out.println(prop.getProperty("dbpassword"));
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
输出
localhost
patel
password
请在< %%>中的jsp中编写此代码 这样你可以在运行时加载任何东西。 需要任何帮助ping我..................:)
答案 1 :(得分:0)
您可以使用连接池
答案 2 :(得分:0)
将登录凭据存储在使用会话ID作为密钥的服务器内存映射中可能更简单,在每次呼叫时重新打开连接并在服务呼叫结束时关闭它。虽然打开连接会受到惩罚,但每个网络互动应该足够有效。这可以防止连接泄漏。
要防止出现安全问题的伪造会话ID,您的Web服务器必须确保为每个呼叫验证用户身份。