使用servlet时&在简单的JSP应用程序中,通过数据源/连接池与数据库连接,典型的应用程序体系结构是什么?
-
当Connection对象被创建时,它是普通应用程序的servlet吗超类并通过参数传递给doGet/doPost?
-
Connection对象如何传递给DAO类来检索/更新域的状态对象?
-
SQL异常处理在DAO级别,特定的servlet级别或servlet的超类?
-
如何设计网站模板?由JSP
include
标签? -
DAO对象属性是否在特定的servlet中构造,当它第一次实例化或放置在另一层,如在doGet/doPost方法中创建?
-
DAO中的每个小操作应该从数据源检索连接还是更好地在DAO的构造函数中传递连接?
-
是通过请求传递给JSP的所有数据。setAttribute还是有更好的方法?
-
我应该只传递到JSP域对象/集合还是传递整个DAO/另一个数据检索中介?
-
我们应该在整个请求-响应链中只实现单个连接对象吗?如果是,如何实现?
1)一旦服务器启动,连接池将可用,为此我们需要在"context.xml"中指定"Resource"标签。最初将有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有它自己的缺点。
我不太清楚你的第五个问题
6)构造函数级别是最好的,我希望或者你创建一个单独的连接类做异常处理,连接关闭和通道。会很好看的。
7)你有三个作用域:应用程序,请求和会话。不要用请求。setAttribute用于所有内容。它有一些限制。
8)以集合的形式传递数据很容易处理。
我不知道。
注意:如果你发现任何错误,不要介意