文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>jndi&servlet(针对运维)

jndi&servlet(针对运维)

时间:2010-08-02  来源:skybin090804

       有些运维(系统工程师--没进行过java的编程)刚开始的时候不知道一些java的一些技术,
最近一些朋友问到,所以就简单写一下,暂时遇到这些,以后有遇到其他的继续补充:

jndi

Java 命名与目录接口(Java Naming and Directory Interface),是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。 JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。

JNDI的用途:
1)你可以用jndi来得到object类的属性
 如:Attribute attr =directory.getAttributes(personName).get("email");
  String email = (String)attr.get();
2)你可以用jndi来搜索对象
 如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls);
 查找谁的名字叫Fox在wiz部门的员工?


具体到公司中某些应用的例子:

       <database ping='true' ping-table='dual'>

           <jndi-name>jdbc/Source</jndi-name>

           <driver type="oracle.jdbc.driver.OracleDriver">

           <url>jdbc:oracle:thin:@192.168.xx.xx:2000:v880</url>

             <user>CO</user>

             <password>test</password>

            </driver>

            <prepared-statement-cache-size>8</prepared-statement-cache-size>

            <max-connections>20</max-connections>

            <max-idle-time>30s</max-idle-time>

         </database>

在程序中,如果想要获取这个数据库连接,就可以通过jndi-name来获取相应的对象实例:

DataSource   _pool;   
 Context   env   =   (Context)   new   InitialContext().lookup("java:comp/env");       
  _pool   =   (DataSource)   env.lookup("jdbc/Source");    

通过上面简单的代码就能获取到数据库对象与数据库通信。(上面只是简单的代码没有任何健壮性)

可以简单这样总结:java的代码存活在resin这个容器中,同时在这个resin的容器中存活了很多资源,而jndi就是这样资源的标识,使程序更容易使用资源。

Jndi可以应用的场景很多,例如:LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表、spring等等。 这里介绍的是最普通和常见。



Servlet

  Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。   位于JSP页面的下一层,就是说jsp页面会先演变成servlet再变成字节码,最后才会被系统认识。 对于系统工程师只需要了解servlet的配置文件就行了。

Servlet不像普通的文件不能具体url就能访问到,要通过web.xml 文件配置其访问路径,才能正确访问,这是因为一个servlet文件就是一个java字节码文件(.class文件)。所以平时如果发现访问一个url出现500或404页面的时候,要定位是哪个部分出错了,这时候可以去查看应用目录下面WEN-INF/web.xml文件。

文件的基本单元如下(某应用例子):


 <servlet>

        <servlet-name>dwr-in</servlet-name>

        <servlet-class>org.directwebremoting.servlet.Dw</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

           <param-name>script</param-name>

           <param-value>true</param-value>

        </init-param>

        <init-param>

            <param-name>cross</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>allow</param-name>

            <param-value>true</param-value>

        </init-param>

</servlet>

    <servlet-mapping>

        <servlet-name>dwr-inv</servlet-name>

        <url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

从配置文件里面我们可以看到 <servlet>  <servlet-mapping>两个配合在一起就能构成完整信息。从mapping中我们可以看到/dwr/*的所有连接都是org.directwebremoting.servlet.Dwr这个java文件提供服务。(其中<init-param>只是一些属性配置,供程序代码中调用)



相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载