1

我必须创建一个 JSP,其中有一个在运行时建立 DB 连接的屏幕,这意味着我必须在运行时提供 DB 详细信息(瘦客户端/驱动程序信息等),然后连接并处理下一页,这是一个小scale appln(最多 20 个用户)所以我想 2 知道如何管理连接。

- 在 Session 中存储连接?- 在 HashTable 中,键作为会话 id,值作为连接?-- 或运行时的某个连接池(我认为这不好).. -- 或创建属性文件并在运行时进行更改并重新加载它..

让我知道这个 wrt 性能和设计的最佳方法。

问候, 阿米特

4

3 回答 3

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 我........ :)

于 2013-01-23T12:05:23.487 回答
0

将登录凭证存储在使用会话 id 作为密钥的服务器内存映射中可能更简单,在每次调用时重新打开连接并在服务调用结束时关闭它。虽然打开连接是有代价的,但每个 Web 交互一个应该足够有效。这可以防止连接泄漏。

为防止伪造会话 ID 会成为安全问题,您的 Web 服务器必须确保用户在每次调用时都经过身份验证。

于 2013-01-23T11:36:20.430 回答
0

您可以使用连接池

检查这个

于 2013-01-23T11:21:28.807 回答