如何在没有任何用户端的套接字关闭的情况下同时处理多个用户访问网页

时间:2012-04-26 07:12:49

标签: jsp database-connection database-server

我有一个问题,我试图将两个或多个网页浏览器/相同浏览器的差异标签登录到同一个网页,会出现错误

  

Io exception:Socket closed

在同一时间刷新/登录的任何一方。

我应该使用多线程开放连接吗?如果是的话怎么做? 有人可以帮忙解决这个问题吗? 该程序是用JSP编写的。

1 个答案:

答案 0 :(得分:0)

确保您没有在代码中将SQL Connection声明并存储为静态或实例变量

例如,这是

public class SomeClass {

    private Connection connection;
    // Or
    private static Connection connection;

}

应该在与执行SQL查询的非常相同的方法块中声明,创建和关闭它。

所以,这是

public class SomeDAO {

    public SomeEntity find(Long id) throws SQLException {
        Connection connection = null;
        // ...

        try {
            connection = database.getConnection();
            // ...
        }
        finally {
            // ...
            if (connection != null) try { connection.close(); } catch(SQLException ignore) {}
        }

        return someEntity;
    }

另见: