使用分层实现业务处理

JNDI

    什么是JNDI:

        java Naming and directory Iterface , java命名和目录接口

        通过名称将资源与服务进行关联

    JNDI的作用与优点:

        在应用与java对象或资源之间建立耦合的逻辑关联,简化应用对于资源的配置及维护工作

        可以在更大范围、不同应用之间共享资源

       问题:如何实现在Tomcat中发布一条信息供所有的web应用程序使用?

实现步骤:

       发布信息:修改Tomcat\conf\context.xml文件

       <Context>

               <Environment name="tjndi" value="hello JNDI" type="java.lang.String"/>

        <Context>

获取资源:使用lookup()进行查找

        //javax.naming.Context提供了查找JNDI的接口

        Context ctx=new InitialContext();  //初始化Context对象

        //java:comp/env/为前缀

        String testjndi =(String)ctx.looup(“java:comp/env/tjndi”);//调用lookup()方法

        out.print(testjndi);

为什么使用连接池:

使用分层实现业务处理

连接池概念:

    数据库连接是非常占用系统资源的,这一点在多用户访问的应用程序中体现得尤为突出。对数据库连接的管理

性能显著影响到整个应用程序的伸缩和健壮性。数据库连接池正式针对这个问题提出来的。

    数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重

新建立一个;释放那些空闲时间超过最大空闲时间的数据库连接,以避免由于没有释放数据库连接而引起的数据库

连接泄露。 

使用分层实现业务处理

DataSource与连接池:

    java.sql.DataSource接口的实现类

        以连接池的形式对数据库连接进行管理

问题:如何获取DataSource的实例?

            Tomcat支持DataSource实现发布为JNDI资源

            Web应用通过JNDI获得DataSource引用

使用分层实现业务处理

使用连接池实现数据库连接:

1、配置context.xml文件

2、配置web.xml

3、添加数据库驱动文件

4、进行代码编写,查找并获取数据源

第一步配置:

<Context>

   <Resource  name="jdbc/news" auth="Container" type="java.sql.DataSoure"

        maxActive="100"  maxldle="30"  maxWait="10000"  username="newsu"

        password="123456"  driverClassName="com.mysql.jdbc.Driver"

        url="jdbc:mysql://127.0.0.1:3306/newsmanagersystem?

        useUnicode=true&amp;characterEncoding=utf-8"/>

</Context>

使用分层实现业务处理

第二步配置:

添加数据库驱动文件

    把数据库驱动文件jar文件,加入到Tomcat的lib中

配置应用程序的web.xml文件

    在web.xml中配置<resource-ref>

<resource-ref>

    <description>news DataSource</description>

    <res-ref-name>jdbc/news</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

</resource-ref>

设计分层模式

JSP开发时分层的弊端:

使用分层实现业务处理


使用分层实现业务处理

 

层与层之间的关系:

使用分层实现业务处理


   分层原则:

使用分层实现业务处理