什么是典型的Servlet + JSP + JDBC简单应用程序体系结构



使用servlet时&在简单的JSP应用程序中,通过数据源/连接池与数据库连接,典型的应用程序体系结构是什么?

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

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

  3. SQL异常处理在DAO级别,特定的servlet级别或servlet的超类?

  4. 如何设计网站模板?由JSP include标签?

  5. DAO对象属性是否在特定的servlet中构造,当它第一次实例化或放置在另一层,如在doGet/doPost方法中创建?

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

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

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

  9. 我们应该在整个请求-响应链中只实现单个连接对象吗?如果是,如何实现?

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)以集合的形式传递数据很容易处理。

我不知道。

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

最新更新