仓酷云 发表于 2015-1-18 11:30:37

JAVA教程之给人人一个ldap例子

用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢?/*1.从LDAP服务器中提取经常使用名cn、可辨别名字uid、暗码userpassword、Email地点mail
*个中利用NetscapeLDAP服务器作为测试情况,利用simple认证体例登录LDAP服务器。
*2.用定名‘admin’暗码是‘1’,全部程序利用SDK1.4.1中的JNDI尺度接口。
*3.为了共同DOMINO数据库开辟,假定用户登录时分的IP地点已纪录在了字段uid中,并用‘,’离隔
*程序终极将打印一个包含一切用户名,暗码,IP地点的字符串。
*4.在处置分别用户名和IP地点的时分,引进了正则表达式的利用。
*/
packagemm;

//引进LDAP的包
importjava.lang.*;
importjava.util.Hashtable;
importjava.util.Enumeration;
importjavax.naming.*;
importjavax.naming.directory.*;
//importmm.splitString;

publicclassJNDISearch{
publicstaticStringINITCTX="com.sun.jndi.ldap.LdapCtxFactory";//驱动
publicstaticStringMY_HOST="ldap://localhost:389";//主机地点和端口
publicstaticStringMY_SEARCHBASE="o=airius.com";//基点出口
publicstaticStringMY_FILTER="(mail=west)";//过滤前提
publicstaticStringMGR_DN="uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";//用户名
publicstaticStringMGR_PW="1";//暗码
publicstaticStringMY_ATTRS[]={/*"cn","userpassword","mail",*/"cn"};
//StringBufferres=newStringBuffer();//用来输出名字,IP地点的对象
publicstaticStringtemp=newString();


publicStringsearch()throwsException{
StringBufferres=newStringBuffer();
try{
//创建毗连
Hashtableenv=newHashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
env.put(Context.PROVIDER_URL,MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION,"simple");//利用复杂认证来认证用户
env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
DirContextctx=newInitialDirContext(env);

//设置查询局限并入手下手查询
SearchControlsconstraints=newSearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumerationresults=ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);

//打印查询了局
while(results!=null&&results.hasMore()){
SearchResultsr=(SearchResult)results.next();
//Stringdn=sr.getName();
Stringdn=sr.getName()+","+MY_SEARCHBASE;
System.out.println("==============================================");
System.out.println("DistinguishedNameis:"+dn);

//打印指定的字段//////////////////////////////////////////////////////////////////
Attributesar=ctx.getAttributes(dn,MY_ATTRS);
if(ar==null){
//对应的uid没有过剩的属性
System.out.println("Entry"+dn+"hasnoneofthespecifiedattributes
");
}else{
//入手下手显现对应的字段
for(inti=0;i<MY_ATTRS.length;i++){
Attributeattr=ar.get(MY_ATTRS);
if(attr!=null){
System.out.print(MY_ATTRS+":");
for(Enumerationvals=attr.getAll();
vals.hasMoreElements();){
temp=(String)vals.nextElement();
System.out.println("        "+temp);
res.append(temp+"/");
}
}
System.out.println("
");
}
///////////////////////////////////////////////////////////////////////////////////


/*打印全体的字段///////////////////////////////////////////////////////////////////
Attributesattrs=sr.getAttributes();
for(NamingEnumerationne=attrs.getAll();
ne.hasMoreElements();){
Attributeattr=(Attribute)ne.next();
StringattrID=attr.getID();
System.out.println(attrID+":");
for(Enumerationvals=attr.getAll();vals.hasMoreElements();){
System.out.println("        "+vals.nextElement());
}
*//////////////////////////////////////////////////////////////////////////////////
}
}
}catch(Exceptione){
e.printStackTrace();
System.exit(1);
}
System.out.println(res.toString()+"



");

//splitStringsp=newsplitString();
//System.out.println("一共有"+sp.splitString(res.toString()).length+"个前往");//打印显现了局,盘算前往的数组值
//returnsp.splitString(res.toString());
returnres.toString();

}

///////////////////////////////////////////////////////////////////////////////////////////
//利用正则表达式来分拣提取的字符串///////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

}


java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。

蒙在股里 发表于 2015-1-21 08:59:43

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

简单生活 发表于 2015-1-25 10:36:44

Java是一种计算机编程语言,拥有跨平台、面向对java

再见西城 发表于 2015-1-25 13:02:57

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

仓酷云 发表于 2015-1-26 05:32:37

是一种将安全性(Security)列为第一优先考虑的语言

小女巫 发表于 2015-1-28 06:02:21

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

若天明 发表于 2015-1-28 09:34:55

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

活着的死人 发表于 2015-2-8 00:57:51

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

飘灵儿 发表于 2015-2-16 21:55:42

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

谁可相欹 发表于 2015-3-12 04:14:05

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

小魔女 发表于 2015-3-19 17:57:02

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

飘飘悠悠 发表于 2015-3-27 10:06:21

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

变相怪杰 发表于 2015-3-27 11:10:05

是一种将安全性(Security)列为第一优先考虑的语言

第二个灵魂 发表于 2015-4-5 01:16:39

是一种将安全性(Security)列为第一优先考虑的语言

因胸联盟 发表于 2015-4-6 08:49:07

Java是一种计算机编程语言,拥有跨平台、面向对java

金色的骷髅 发表于 2015-4-9 15:39:00

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

灵魂腐蚀 发表于 2015-4-21 17:17:35

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

只想知道 发表于 2015-4-24 17:27:03

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

莫相离 发表于 2015-5-6 09:40:44

Java是一种计算机编程语言,拥有跨平台、面向对java
页: [1]
查看完整版本: JAVA教程之给人人一个ldap例子