什么是典型的Servlet + JSP + JDBC简单应用程序架构?

时间:2013-05-31 09:24:27

标签: java jsp servlets jdbc architecture

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

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

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

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

  4. 网站模板是如何设计的?通过JSP include标记?

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

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

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

  8. 我应该只传递给JSP域对象/集合还是传递整个DAO /另一个调解器来进行数据撤销?

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

1 个答案:

答案 0 :(得分:-1)

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 using是最好的方法。因为,include有其自身的缺点。

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

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

7)你有三个范围:应用程序,请求和session.Dont使用request.setAttribute for everything.it有一些限制。

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

9)我没有意识到这一点。

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