- 论坛徽章:
- 0
|
lesson 19 jndi
1.InitialContext在应用程序初始化发布时被配置好,之后应用程序可以一直使用这个对象.
所有资源入口都在java:comp/env这个jndi命名空间下,对于dataSource来说
Context initctx=new InitialContext();
Context envctx=(Context)initctx.lookup("java:comp/env");
寻找datasource
Datasource ds=(datasource)envctx.lookup("/jdbc/shopdb");
:::这就是第六章中已经应用到的内容.
2.jndi
可以访问命名和目录服务.它是j2ee的核心技术之一
利用它可以方便地查找远程或是本地对象,
主要应用在jms,jmail,jdbc,ejb中.
:jdbc已经讲过.
:它实际上是一组在java应用中访问命名和目录服务的API.
:便开发者可以更集中地存储共有信息,在网络应用中重要.
:命名服务和目录服务区别.
命名服务将对象和名称联系起来,使得开发者可以用名称访问对象.
3.jndi的五个包.
javax.naming.*;
实际的应用中我们只是应用其中的几个类而已.
4.tomcat提供服务的方式和j2ee服务器是一样的,j2ee标准在WEB应用的WEB-INF/web.xml文件提供
一些标准元素用于引用资源,被引用的资源必须在服务器应用的配置文件中指定.
domcat:这些资源必须在或者是元素下的元素下配置.
:对于TOM来说,在/conf/server.xml文件中配置全局资源,然后使用(context),
从而每个应用都可以使用,也可以在每个的web.xml中引用.利用
:配置资源的手段:
或者下利用这些元素
:
5.配置资源工厂
:使用普通javabean资源,
:编写javabean
:配置资源工厂(如下)
factory//这是个必须的参数,用于指定实例化这个Bean所需要的工厂.
org.apache.naming.factory.BeanFactory
username//设置了对应的username的属性.
rambler
factory
cn.ac.ict.MyBeanFactory
bar
23
:声明资源引用
为了在该应用中使用下定义的资源还要在其web.xml下声明.
Object factory for UserInfo instances.
bean/userinfo
cn.ac.ict.UserInfo
:使用javabean资源.
在JSP页面中,
使用Java mail sessions 资源,
使用jdbc datasources
经验证:声明资源的引用可以不用写!!!
再次复习下:context元素在server.xml和单独目录是完全一样的书写方式.
6.使用定制工厂
:TOM默认只提供以上三种资源工厂,当然自己可以定制,然后像标准工厂一样去使用和配置.
步骤:
:javabean类
:编写一个资源工厂类
这个类必须实现javax.naming.spi.ObjectFactory接口,才能具有资源工厂的功能.
每次在WEB应用程序中使用lookup()方法时getObjectInstance()方法都会被调用一次.
(TOM上述的三个资源同样如此)
它的三个参数:
object:,tomcat中总是javax.naming.Reference类型的对象
Context:
hashtable:tomcat中忽略它.
注意要编译这类,必须:/commen/lib,/server/lib下的jar文件添加到路径中
编译后的.class文件(和建立的bean.class)要放在common/class/cn/ac/ict目录下,或者
打包后放在/common/lib下.
注意,并不是放在web 的应用目录下.
经验证:并不需要如此,和普通的设置就能解决了.
: 配置工厂
和以前一样
所谓有配置,对于javabean来说就是设置其中的属性值,对于jdbc就是设置连接的属性.
配置相当重要,因为在JSP的应用中,直接利用配置中设置的参数的值.
:声明资源引用
:使用
和以前一样
lesson filter and listener
1.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/32621/showart_256232.html |
|