仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1222|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA教程之给人人一个ldap例子

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用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[i]);
if(attr!=null){
System.out.print(MY_ATTRS[i]+":");
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的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
5#
 楼主| 发表于 2015-1-26 05:32:37 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
小女巫 该用户已被删除
6#
发表于 2015-1-28 06:02:21 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
若天明 该用户已被删除
7#
发表于 2015-1-28 09:34:55 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
活着的死人 该用户已被删除
8#
发表于 2015-2-8 00:57:51 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
飘灵儿 该用户已被删除
9#
发表于 2015-2-16 21:55:42 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
谁可相欹 该用户已被删除
10#
发表于 2015-3-12 04:14:05 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
小魔女 该用户已被删除
11#
发表于 2015-3-19 17:57:02 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
飘飘悠悠 该用户已被删除
12#
发表于 2015-3-27 10:06:21 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
变相怪杰 该用户已被删除
13#
发表于 2015-3-27 11:10:05 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
第二个灵魂 该用户已被删除
14#
发表于 2015-4-5 01:16:39 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
因胸联盟 该用户已被删除
15#
发表于 2015-4-6 08:49:07 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
金色的骷髅 该用户已被删除
16#
发表于 2015-4-9 15:39:00 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
灵魂腐蚀 该用户已被删除
17#
发表于 2015-4-21 17:17:35 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
只想知道 该用户已被删除
18#
发表于 2015-4-24 17:27:03 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
莫相离 该用户已被删除
19#
发表于 2015-5-6 09:40:44 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-28 18:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表