-3

在简单应用中使用 Servlets & JSP 时,通过 DataSource/Connection pool 连接数据库,典型的应用架构是什么?

  1. 创建 Connection 对象时,它是常见的应用程序的 servlet 超类并通过参数传递给 doGet/doPost 吗?

  2. Connection 对象如何传递给 DAO 类以检索/更新域对象的状态?

  3. SQL 异常是在 DAO 级别、特定的 servlet 级别还是 servlet 的超类处理的?

  4. 网站模板是如何设计的?通过 JSPinclude标签?

  5. 特定 servlet 中的 DAO 对象属性是在第一次实例化时构造的,还是像在 doGet/doPost 方法中创建的那样位于另一层中?

  6. DAO 中的每个小操作都应该从 DataSource 检索连接还是更好地在 DAO 的构造函数中传递 Connection?

  7. 是所有数据都通过 request.setAttribute 传递给 JSP 还是有更好的方法?

  8. 我应该只传递给 JSP 域对象/集合还是传递整个 DAO/另一个中介以进行数据检索?

  9. 我们是否应该为整个请求-响应链只实现单个 Connection 对象?如果是,如何实现?

4

1 回答 1

-1

1)一旦服务器启动,连接池将可用,为此我们需要在“context.xml”中指定“资源”标签。最初将有10个连接可用(默认)。

2)你可以传递连接对象,下面的例子会让你更清楚

    class A {
    public static DataSource getConnection() {
     Context initContext  = new InitialContext();
     Context envContext  = (Context)initContext.lookup("java:/comp/env");
     DataSource dataSource = (DataSource)envContext.lookup("jdbc/testdb");
     return dataSource;
    }
     }  
   class B {
    javax.sql.DataSource ds=(DataSource)A.getConnection();
    javax.sql.Connection con=ds.getConnection();
    }

3)您可以派生自己的异常或预定义的异常,这取决于用例。通常异常会在任何级别处理,或者您可以以某种方式抑制。

4)在jsp中,jsp:include使用是最好的方式。因为,include有其自身的缺点。

5)我不清楚你的第 5 个问题

6)构造函数级别是最好的,我希望或者你创建一个单独的连接类来进行异常处理,连接关闭和通道。它看起来很棒。

7)你有三个范围:应用程序,请求和会话。不要对所有内容使用request.setAttribute。它有一些限制。

8)以集合的形式传递数据很容易处理。

9)我不知道这一点。

注意:如果您发现任何错误,请不要介意

于 2013-05-31T12:02:46.290 回答