锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
欏甸潰闈?rùn)鎬佸寲(apache?)
瀛樺偍鍒嗙,欏甸潰鍥劇墖鍒嗗紑
鏁版嵁搴撶殑姘村鉤鍒嗗壊鍜屽瀭鐩村垎鍓?br />
鍚勫眰鐨勭紦瀛樻妧鏈?Oracle(cache group),hibernate(session緙撳瓨,sessionFactory緙撳瓨,濂藉儚鍚嶅瓧鍙獷hcache ),memcache,oscache
璐熻澆鍧囪 :闆嗙兢? 7灞傛ā鍨嬫瘡涓灞傞兘鏈夎В鍐蟲(chóng)柟妗?img src ="http://www.tkk7.com/KingKong/aggbug/349166.html" width = "1" height = "1" />榪欎釜綾誨瀷鏀寔鍓嶅悗婊氬姩鍙栧緱綰綍next錛堬級(jí)銆乸revious()錛屽洖鍒扮涓琛宖irst()錛屽悓鏃惰繕鏀寔瑕佸幓鐨凴esultSet涓殑絎嚑琛宎bsolute錛坕nt n錛夛紝浠ュ強(qiáng)縐誨姩鍒扮浉瀵瑰綋鍓嶈鐨勭鍑犺relative(int n)錛岃瀹炵幇榪欐牱鐨凴esultSet鍦ㄥ垱寤篠tatement鏃剁敤濡備笅鐨勬柟娉曘?
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
鍏朵腑涓や釜鍙傛暟鐨勬剰涔夋槸錛?
resultSetType鏄緗甊esultSet瀵硅薄鐨勭被鍨嬪彲婊氬姩錛屾垨鑰呮槸涓嶅彲婊氬姩銆傚彇鍊煎涓嬶細(xì)
ResultSet.TYPE_FORWARD_ONLY鍙兘鍚戝墠婊氬姩
ResultSet.TYPE_SCROLL_INSENSITIVE鍜孯esult.TYPE_SCROLL_SENSITIVE榪欎袱涓柟娉曢兘鑳藉瀹炵幇浠繪剰鐨勫墠鍚庢粴鍔紝浣跨敤鍚勭縐誨姩鐨凴esultSet鎸囬拡鐨勬柟娉曘備簩鑰呯殑鍖哄埆鍦ㄤ簬鍓嶈呭浜庝慨鏀逛笉鏁忔劅錛岃屽悗鑰呭浜庝慨鏀規(guī)晱鎰熴?
resultSetConcurency鏄緗甊esultSet瀵硅薄鑳藉淇敼鐨勶紝鍙栧煎涓嬶細(xì)
ResultSet.CONCUR_READ_ONLY 璁劇疆涓哄彧璇葷被鍨嬬殑鍙傛暟銆?
ResultSet.CONCUR_UPDATABLE 璁劇疆涓哄彲淇敼綾誨瀷鐨勫弬鏁般?
鎵浠ュ鏋滃彧鏄兂瑕佸彲浠ユ粴鍔ㄧ殑綾誨瀷鐨凴esult鍙鎶奡tatement濡備笅璧嬪煎氨琛屼簡(jiǎn)銆?
Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr)錛?/pre>
/**
* 鎸夌収鎸囧畾闀垮害灝嗗瓧絎︿覆榪涜鍒嗗壊,涓枃瀛楃綆?涓暱搴?br />
* @param str 瀛楃涓?br />
* @param length 鎸囧畾闀垮害
* @return 濡傛灉瀛楃涓查暱搴﹁秴鍑烘寚瀹氶暱搴?br />
* ,鍒欏皢瀛楃涓插垎鎴?涓儴鍒?鍒嗗埆瑁呭湪map涓?br />
*/
public static Map getStr(String str, int length) {
HashMap hashMap = new HashMap();
String addr1 = "";
String addr2 = "";
byte tmpBytes[] = str.getBytes();
int iByteLen = tmpBytes.length;
if (iByteLen > length) {
int iLen = 0;
for (int i = 0; i < length; i++) {
if ((tmpBytes[i] & 0xFF) > 0x80) {
iLen += 2;
i++;
continue;
} else {
iLen += 1;
continue;
}
}
addr1 = new String(tmpBytes, 0, iLen);
addr2 = new String(tmpBytes, iLen, iByteLen - iLen);
} else {
addr1 = str;
}
hashMap.put(new Integer(1), addr1);
hashMap.put(new Integer(2), addr2);
return hashMap;
}
0x80絳変簬鍗佽繘鍒剁殑128,Turbo C涓瀹氬ASCII鐮佸煎ぇ浜?x80鐨勫瓧絎﹀皢琚涓烘槸璐熸暟銆?br />
public String getOriginalFilename(String filePath) {
String filename = filePath;
if (filename == null) {
return "";
}
int pos = filename.lastIndexOf("/");
if (pos == -1) {
pos = filename.lastIndexOf("\\");
}
if (pos != -1) {
return filename.substring(pos + 1);
} else {
return filename;
}
}
<mime-mapping>
<extension>xls</extension>
<mime-type>application/excel</mime-type>
</mime-mapping>
File file = new File("d://xxx.xml");
if(file.exists()){
file.delete();
}
CreatXml temp = new CreatXml();
temp.createXMLFile("d://xxx.xml")
2.鍦ㄦ暟鎹簮(榪炴帴姹?鐨勫湴鏂瑰姞涓繖涓細(xì)<use-java-context>false</use-java-context>錛岃兘淇濊瘉鍦╦ava涓煡鎵炬暟鎹簮鐨勬椂鍊?br /> ctx.lookup("jdbc/xxx");灝變笉闇瑕佸啓鎴恈tx.lookup("java:/jdbc/xxx");
鏈鍚庤繕鏄病瑙e喅...騫茶剢鐩存帴灝辨妸鏈哄櫒閲岄潰鎵鏈夌殑jdk閮藉嵏杞戒簡(jiǎn),鍙浜?jiǎn)涓涓狫DK1.4(搴旂敤闇瑕佺殑,鏈変釜鍦版柟涓嶆敮鎸佸叾浠栫増鏈殑JDK),鐒跺悗閲嶆柊璁劇疆浜?jiǎn)鐜鍙橀?鏂拌浜?jiǎn)涓媘yeclipse,鍦ㄥ簲鐢ㄤ笂闈㈠皢jars鍔犺繘鍘?鍦╝dd library鐨勫湴鏂瑰皢jre system library鍔犺繘鍘誨氨濂戒簡(jiǎn).
浜?鐜:JDK1.4,jboss4.0.4
閮ㄧ講濂藉悗,鍚姩,浼?xì)鎶ヤ竴涓敊,鍏充簬log4j鐨?榪欎釜鏄洜涓哄簲鐢ㄦ湰鏉ュ甫浜?jiǎn)涓涓猯og4j鐨勫寘,鑰宩boss鑷繁涔熼泦鎴愪簡(jiǎn)log4j鐨?鎵浠oad鐨勬椂鍊欓犳垚鍐茬獊,瑙e喅鏂規(guī)硶:鍒癑boss4.0\server\default\conf榪欎釜鐩綍涓嬶紝鎵懼埌l(fā)og4j.xml鏀規(guī)垚jboss-log4j.xml錛屽啀鍒癹boss-service.xml鎵劇浉搴旂殑鍦版柟鏀逛竴涓?
涓?鏈夊叧涔辯爜
1.瀵逛簬tomcat,鍦╯erver.xml鏂囦歡鎵懼埌<Connector port="8080".../>榪欐(8080鏄綘Tomcat鐨勭鍙?錛屽湪榪欐閲屽姞URIEncoding="GBK"銆?
2.瀵逛簬jboss,鍦╘server\default\deploy\jbossweb-tomcat55.sar\server.xml,鍚宼omcat
涓錛氬父鐢ㄥ叕寮?/strong>
W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
Y鏄勾浠芥暟錛孌鏄繖涓澶╁湪榪欎竴騫翠腑鐨勭瘡縐ぉ鏁幫紝涔熷氨鏄繖涓澶╁湪榪欎竴騫翠腑鏄鍑犲ぉ銆?/font>
浜岋細(xì)钄″嫆錛圸eller錛夊叕寮?/font>
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
鍏紡涓殑絎﹀彿鍚箟濡備笅錛寃錛氭槦鏈燂紱c錛氫笘綰紱y錛氬勾錛堜袱浣嶆暟錛夛紱 m錛氭湀錛坢澶т簬絳変簬3錛屽皬浜庣瓑浜?4錛屽嵆鍦ㄨ敗鍕掑叕寮忎腑錛屾煇騫寸殑1銆?鏈堣鐪嬩綔涓婁竴騫寸殑13銆?4鏈堟潵璁$畻錛屾瘮濡?003騫?鏈?鏃ヨ鐪嬩綔2002騫寸殑13鏈?鏃ユ潵璁$畻錛夛紱d錛氭棩錛沎 ]浠h〃鍙栨暣錛屽嵆鍙鏁存暟閮ㄥ垎銆?/font>
鐩告瘮浜庨氱敤閫氱敤璁$畻鍏紡鑰岃█錛岃敗鍕掞紙Zeller錛夊叕寮忓ぇ澶ч檷浣庝簡(jiǎn)璁$畻鐨勫鏉傚害銆?/font>
涓夛細(xì)瀵硅敗鍕掞紙Zeller錛夊叕寮忕殑鏀硅繘
浣滆咃細(xì)鍐濈惍
鐩告瘮浜庡彟澶栦竴涓氱敤閫氱敤璁$畻鍏紡鑰岃█錛岃敗鍕掞紙Zeller錛夊叕寮忓ぇ澶ч檷浣庝簡(jiǎn)璁$畻鐨勫鏉傚害銆備笉榪囷紝絎旇呯粰鍑虹殑閫氱敤璁$畻鍏紡浼間箮鏇村姞綆媧侊紙鍖呮嫭榪愮畻榪囩▼錛夈傜幇灝嗗叕寮忓垪浜庡叾涓嬶細(xì)
W=[y/4]+r (y/7)-2r(c/4)+m’+d
鍏紡涓殑絎﹀彿鍚箟濡備笅錛宺 ( )浠h〃鍙栦綑錛屽嵆鍙浣欐暟閮ㄥ垎錛沵’鏄痬鐨勪慨姝f暟錛岀幇緇欏嚭1鑷?2鏈堢殑淇鏁?’鑷?2’濡備笅錛氾紙1’錛?0’錛?6錛涳紙2’錛?’錛?1’錛?2錛涳紙4’錛?’錛?5錛?’=0錛?’=3錛?’=1錛涳紙9’錛?2’錛?4錛堟敞鎰忥細(xì)鍦ㄧ瑪鑰呯粰鍑虹殑鍏紡涓紝y涓烘鼎騫存椂1’=5錛?’=1錛夈傚叾浠栫鍙蜂笌钄″嫆錛圸eller錛夊叕寮忎腑鐨勫惈涔夌浉鍚屻?/font>
鍥涳細(xì)鍩哄鎷夊皵媯綆楀叕寮?/font>
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
鍦ㄥ叕寮忎腑d琛ㄧず鏃ユ湡涓殑鏃ユ暟錛宮琛ㄧず鏈堜喚鏁幫紝y琛ㄧず騫存暟銆?/font>
娉ㄦ剰錛氬湪鍏紡涓湁涓笌鍏朵粬鍏紡涓嶅悓鐨勫湴鏂癸細(xì)
鎶婁竴鏈堝拰浜屾湀鐪嬫垚鏄笂涓騫寸殑鍗佷笁鏈堝拰鍗佸洓鏈堬紝渚嬶細(xì)濡傛灉鏄?004-1-10鍒欐崲綆楁垚錛?003-13-10鏉ヤ唬鍏ュ叕寮忚綆椼?/font>
涓鑸彧闇瑕侀噸鍐檙un()鏂規(guī)硶鐨勮瘽錛屽疄鐜皉unnalbe鎺ュ彛姣旇緝鏂逛究銆?/p>
濡傛灉鍦ㄨ繘紼嬬被閲岄潰闇瑕佽闂悓涓涓彉閲忕殑璇濓紝灝卞疄鐜版帴鍙c傚鏋滅敤緇ф壙綾葷殑璇濓紝鍚屼竴涓彉閲忓氨鏈夊嚑浠界殑鎷瘋礉銆備絾鏄唴閮ㄧ被緇ф壙綾葷殑緇撳拰緇ф壙鎺ュ彛鐨勬晥鏋滀竴鏍楓?/p>
鍚姩涓涓嚎紼?br />MyThread mt=new MyThread();
new Thread(mt).start();
濂藉涓滆タ閮芥湁鏃墮棿鐗囥傛椂闂寸墖鏄釜涓嶇‘瀹氱殑涓滆タ銆?/p>
褰撹皟鐢╳ait(),notify()鏂規(guī)硶鏃訛紝搴旇淇濊瘉浠栦滑鏄悓涓涓璞y涔熻鍚屼竴涓璞°俿ynchronized 涓?鎵嶈兘鏈墂ait(),notify()鏂規(guī)硶銆?/p>
synchronized(Object obj)涓巗ynchronized(this)鐨勫尯鍒?!(璋佽兘鍛婅瘔鎴?!!!!)
涓嬮潰鏄敓浜ц呬笌娑堣垂鑰呯殑渚嬪瓙錛屼負(fù)浜?jiǎn)鏂逛究锛屽嚑涓c葷洿鎺ュ啓鍦ㄤ竴璧蜂簡(jiǎn)銆?br />
//new 鐢熶駭鑰咃紝娑堣垂鑰咃紝闃熷垪銆傚茍璧風(fēng)敤鐢熶駭鑰咃紝娑堣垂鑰呯殑綰跨▼
public class Test {
聽(tīng)public static void main(String[] args) {
聽(tīng)聽(tīng)Queue q = new Queue();
聽(tīng)聽(tīng)Producer p = new Producer(q);
聽(tīng)聽(tīng)Consumer c = new Consumer(q);
聽(tīng)聽(tīng)p.start();
聽(tīng)聽(tīng)c.start();
聽(tīng)}
}
//鐢熶駭鑰咃紝姣忕敓浜уソ涓涓笢瑗垮悗錛屽氨寰闃熷垪涓斁涓涓?/font>
class Producer extends Thread {
聽(tīng)Queue q;
聽(tīng)Producer(Queue q) {
聽(tīng)聽(tīng)this.q = q;
聽(tīng)}
聽(tīng)public void run() {
聽(tīng)聽(tīng)for (int i = 0; i < 10; i++) {
聽(tīng)聽(tīng)聽(tīng)q.setValue(i);
聽(tīng)聽(tīng)聽(tīng)System.out.println("Producer put:" + i);
聽(tīng)聽(tīng)}
聽(tīng)}
}
//娑堣垂鑰咃紝姣忓綋闃熷垪涓湁涓滆タ閫氱煡鏃訛紝灝變粠闃熷垪鍘繪嬁
class Consumer extends Thread {
聽(tīng)Queue q;
聽(tīng)Consumer(Queue q) {
聽(tīng)聽(tīng)this.q = q;
聽(tīng)}
聽(tīng)public void run() {
聽(tīng)聽(tīng)while (true) {
聽(tīng)聽(tīng)聽(tīng)System.out.println("Consumer get:" + q.getValue());
聽(tīng)聽(tīng)}
聽(tīng)}
}
//闃熷垪
class Queue {
聽(tīng)int value;
聽(tīng)boolean flag = false;
聽(tīng)//鐢熶駭鑰呭線榪欐斁瀹冩墍鐢熶駭鐨勪笢瑗?br />聽(tīng)public synchronized void setValue(int i) {
聽(tīng)聽(tīng)//褰撶敓浜уソ涓涓線闃熷垪涓斁浜?jiǎn)鍚庡Q屾斁緗竴涓爣蹇椼傚彂涓氱煡錛屽憡璇夎鐢熶駭濂戒簡(jiǎn)錛屽茍絳夊緟娑堣垂鑰呮潵鎷?br />聽(tīng)聽(tīng)if (!flag) {
聽(tīng)聽(tīng)聽(tīng)value = i;
聽(tīng)聽(tīng)聽(tīng)flag = true;
聽(tīng)聽(tīng)聽(tīng)notify();
聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)try {
聽(tīng)聽(tīng)聽(tīng)wait();
聽(tīng)聽(tīng)} catch (InterruptedException e) {
聽(tīng)聽(tīng)聽(tīng)e.printStackTrace();
聽(tīng)聽(tīng)}
聽(tīng)}
聽(tīng)//娑堣垂鑰呬粠榪欒幏鍙栦笢瑗?/font>
聽(tīng)public synchronized int getValue() {
聽(tīng)聽(tīng)//娑堣垂榪欏厛鍒ゆ柇闃熷垪鏄惁鏈変笢瑗夸簡(jiǎn)錛屾湁鐨勮瘽錛屽氨璁╁叾浠栫嚎紼嬬瓑寰咃紝鑷繁鍙栨嬁錛屾嬁濂藉悗璁劇疆涓涓爣蹇楋紝鍙戜釜閫氬憡鍛婅瘔鍏朵粬綰跨▼錛屾垜鎷垮ソ浜?/font>
聽(tīng)聽(tīng)if (!flag) {
聽(tīng)聽(tīng)聽(tīng)try {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)wait();
聽(tīng)聽(tīng)聽(tīng)} catch (InterruptedException e) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)e.printStackTrace();
聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)flag = false;
聽(tīng)聽(tīng)notify();
聽(tīng)聽(tīng)return value;
聽(tīng)}
}
2.
Collection錛氶泦鍚堝眰嬈′腑鐨勬牴鎺ュ彛錛孞DK娌℃湁鎻愪緵榪欎釜鎺ュ彛鐩存帴鐨勫疄鐜扮被銆?br />Set錛氫笉鑳藉寘鍚噸澶嶇殑鍏冪礌銆係ortedSet鏄竴涓寜鐓у崌搴忔帓鍒楀厓绱犵殑Set銆?br />List錛氭槸涓涓湁搴忕殑闆嗗悎錛屽彲浠ュ寘鍚噸澶嶇殑鍏冪礌銆傛彁渚涗簡(jiǎn)鎸夌儲(chǔ)寮曡闂殑鏂瑰紡銆?br />Map錛氬寘鍚簡(jiǎn)key-value瀵廣侻ap涓嶈兘鍖呭惈閲嶅鐨刱ey銆係ortedMap鏄竴涓寜鐓у崌搴忔帓鍒梜ey鐨凪ap銆?/p>
3.
鍑℃槸緇ф壙浜?jiǎn)collection鐨勬帴鍙g殑錛岄兘鏈塱terator鐨勬柟娉曘?/p>
4.
瀵逛簬娌℃湁get鐨勯泦鍚堢被錛屽彲浠ョ敤鐖瑰甫鍣ㄣ傝屼笖鐖瑰甫鍣ㄦ槸閫氱敤鐨勩?/p>
5.
collections鏄被錛岄兘鏄潤(rùn)鎬佺殑銆傞噷闈㈡湁鍑犱釜鏂規(guī)硶鏄嬁鏉ユ帓搴忕殑銆?濡俿ort鏂規(guī)硶)銆俢ompared鏄釜姣旇緝鍣ㄣ?br />collection鏄帴鍙c?/p>
6.
Stack閲岄潰鐨刾op鍜宲ush鏈夌偣鍍廹et鍜宻et銆?br />Queue鍜孲tack宸笉澶氾紝浣嗘槸鏄疐IFO銆?/p>
7.
鍥犱負(fù)hashset璁$畻鍑哄搴旂殑鍑芥暟鍊鹼紝浠ヨ繖涓間綔涓鴻緇撶偣瀛樺偍鍦ㄦ暎鍒楄〃涓殑鍦板潃,鎵浠ュ鏌ユ壘鐨勬晥鐜囬潪甯擱珮銆?br />瀹炵幇set鎺ュ彛鐨勮兘涓嶈兘閲嶅銆?br />hashset閫氳繃鏁e垪鐮佹潵瀛樺偍錛岃屾暎鍒楃爜鐨勮幏寰楅潬hashcode鏉ュ緱鍒般俬ashcode鏍規(guī)嵁瀵硅薄鐨勫唴瀛樼殑鍦板潃鏉ュ緱鍒版暎鍒楃爜銆?/p>
8.
hashmap闈爌ut濉厓绱狅紝闈爂et鍙栧厓绱犮侶ashMap瀵筴ey榪涜鏁e垪銆?br />涓変釜鏂規(guī)硶keySet()銆乿alues()銆乪ntrySet()銆?/p>
9.
鍦↙ist鐨勫紑濮嬪澧炲姞鍏冪礌錛屾垨鑰呭湪List涓繘琛屾彃鍏ュ拰鍒犻櫎鎿嶄綔錛屽簲璇ヤ嬌鐢↙inkedList銆傚鏋滃崟鍗曟槸涓轟簡(jiǎn)鏌ヨ錛屽氨鐢ˋrrayList銆傚洜涓篈rrayList搴曞眰閲囩敤鏁扮粍瀹屾垚錛岃孡inkedList鍒欐槸浠ヤ竴鑸殑鍙屽悜閾捐〃(double-linked list)瀹屾垚錛屽叾鍐呮瘡涓璞¢櫎浜?jiǎn)鏁版嵁鏈w錛岃繕鏈変袱涓?寮曠敤錛屽垎鍒寚鍚戝墠涓涓厓绱犲拰鍚庝竴涓厓绱犮?/p>
10.
HashSet鏄熀浜嶩ash綆楁硶瀹炵幇鐨勶紝鍏舵ц兘閫氬父閮戒紭?shù)簬TreeSet銆傞氬父閮藉簲璇ヤ嬌鐢℉ashSet錛屽湪闇瑕佹帓搴忕殑鍔熻兘鏃訛紝鎴戜滑鎵嶄嬌鐢═reeSet銆?/p>
11.
鍜孲et綾諱技錛孒ashMap鐨勯熷害閫氬父閮芥瘮TreeMap蹇紝鍙湁鍦ㄩ渶瑕佹帓搴忕殑鍔熻兘鐨勬椂鍊欙紝鎵嶄嬌鐢═reeMap銆?/p>
J2EE騫沖彴鐢變竴鏁村鏈嶅姟錛圫ervices錛夈佸簲鐢ㄧ▼搴忔帴鍙o紙APIs錛夊拰鍗忚鏋勬垚錛屽畠瀵瑰紑鍙戝熀浜嶹eb鐨勫灞傚簲鐢ㄦ彁渚涗簡(jiǎn)鍔熻兘鏀寔錛屼笅闈㈠J2EE涓殑13縐嶆妧鏈鑼冭繘琛岀畝鍗曠殑鎻忚堪(闄愪簬綃囧箙錛岃繖閲屽彧鑳借繘琛岀畝鍗曠殑鎻忚堪):
JDBC(Java Database Connectivity):
JDBC API涓鴻闂笉鍚岀殑鏁版嵁搴撴彁渚涗簡(jiǎn)涓縐嶇粺涓鐨勯斿緞錛岃薄ODBC涓鏍鳳紝JDBC瀵瑰紑鍙戣呭睆钄戒簡(jiǎn)涓浜涚粏鑺傞棶棰橈紝鍙﹀錛孞DCB瀵規(guī)暟鎹簱鐨勮闂篃鍏鋒湁騫沖彴鏃犲叧鎬с?
JNDI(Java Name and Directory Interface):
JNDI API琚敤浜庢墽琛屽悕瀛楀拰鐩綍鏈嶅姟銆傚畠鎻愪緵浜?jiǎn)涓鑷寸殑妯″瀷鏉ュ瓨鍙栧拰鎿嶄綔浼佷笟綰х殑璧勬簮濡侱NS鍜孡DAP錛屾湰鍦版枃浠剁郴緇燂紝鎴栧簲鐢ㄦ湇鍔″櫒涓殑瀵硅薄銆?
EJB(Enterprise JavaBean):
J2EE鎶鏈箣鎵浠ヨ耽寰楁煇浣撳箍娉涢噸瑙嗙殑鍘熷洜涔嬩竴灝辨槸EJB銆傚畠浠彁渚涗簡(jiǎn)涓涓鏋舵潵寮鍙戝拰瀹炴柦鍒嗗竷寮忓晢鍔¢昏緫錛岀敱姝ゅ緢鏄捐憲鍦扮畝鍖栦簡(jiǎn)鍏鋒湁鍙幾緙╂у拰楂樺害澶嶆潅鐨勪紒涓氱駭搴旂敤鐨勫紑鍙戙侲JB瑙勮寖瀹氫箟浜?jiǎn)EJB緇勪歡鍦ㄤ綍鏃跺浣曚笌瀹冧滑鐨勫鍣ㄨ繘琛屼氦浜掍綔鐢ㄣ傚鍣ㄨ礋璐f彁渚涘叕鐢ㄧ殑鏈嶅姟錛屼緥濡傜洰褰曟湇鍔°佷簨鍔$鐞嗐佸畨鍏ㄦс佽祫婧愮紦鍐叉睜浠ュ強(qiáng)瀹歸敊鎬с備絾榪欓噷鍊煎緱娉ㄦ剰鐨勬槸錛孍JB騫朵笉鏄疄鐜癑2EE鐨勫敮涓閫斿緞銆傛鏄敱浜嶫2EE鐨勫紑鏀炬э紝浣垮緱鏈夌殑鍘傚晢鑳藉浠ヤ竴縐嶅拰EJB騫寵鐨勬柟寮忔潵杈懼埌鍚屾牱鐨勭洰鐨勩?
RMI(Remote Method Invoke):
姝e鍏跺悕瀛楁墍琛ㄧず鐨勯偅鏍鳳紝RMI鍗忚璋冪敤榪滅▼瀵硅薄涓婃柟娉曘傚畠浣跨敤浜?jiǎn)搴忓垪鍖栨柟寮忓湪瀹㈡堬L(fēng)鍜屾湇鍔″櫒绔紶閫掓暟鎹俁MI鏄竴縐嶈EJB浣跨敤鐨勬洿搴曞眰鐨勫崗璁?
Java IDL/CORBA:
鍦↗ava IDL鐨勬敮鎸佷笅錛屽紑鍙戜漢鍛樺彲浠ュ皢Java鍜孋ORBA闆嗘垚鍦ㄤ竴璧楓?浠栦滑鍙互鍒涘緩Java瀵硅薄騫朵嬌涔嬪彲鍦–ORBA ORB涓睍寮, 鎴栬呬粬浠繕鍙互鍒涘緩Java綾誨茍浣滀負(fù)鍜屽叾瀹僌RB涓璧峰睍寮鐨凜ORBA瀵硅薄鐨勫鎴楓傚悗涓縐嶆柟娉曟彁渚涗簡(jiǎn)鍙﹀涓縐嶉斿緞錛岄氳繃瀹僇ava鍙互琚敤浜庡皢浣犵殑鏂扮殑搴旂敤鍜屾棫鐨勭郴緇熺浉闆嗘垚銆?
JSP(Java Server Pages):
JSP欏甸潰鐢盚TML浠g爜鍜屽祵鍏ュ叾涓殑Java浠g爜鎵緇勬垚銆傛湇鍔″櫒鍦ㄩ〉闈㈣瀹㈡埛绔墍璇鋒眰浠ュ悗瀵硅繖浜汮ava浠g爜榪涜澶勭悊錛岀劧鍚庡皢鐢熸垚鐨凥TML欏甸潰榪斿洖緇欏鎴風(fēng)鐨勬祻瑙堝櫒銆?
Java Servlet:
Servlet鏄竴縐嶅皬鍨嬬殑Java紼嬪簭錛屽畠鎵╁睍浜?jiǎn)Web鏈嶅姟鍣ㄧ殑鍔熻兘銆備綔涓轟竴縐嶆湇鍔″櫒绔殑搴旂敤錛屽綋琚姹傛椂寮濮嬫墽琛岋紝榪欏拰CGI Perl鑴氭湰寰堢浉浼箋係ervlet鎻愪緵鐨勫姛鑳藉ぇ澶氫笌JSP綾諱技錛屼笉榪囧疄鐜扮殑鏂瑰紡涓嶅悓銆侸SP閫氬父鏄ぇ澶氭暟HTML浠g爜涓祵鍏ュ皯閲忕殑Java浠g爜錛岃宻ervlets鍏ㄩ儴鐢盝ava鍐欐垚騫朵笖鐢熸垚HTML銆?
XML(Extensible Markup Language):
XML鏄竴縐嶅彲浠ョ敤鏉ュ畾涔夊叾瀹冩爣璁拌璦鐨勮璦銆傚畠琚敤鏉ュ湪涓嶅悓鐨勫晢鍔¤繃紼嬩腑鍏變韓鏁版嵁銆俋ML鐨勫彂灞曞拰Java鏄浉浜掔嫭绔嬬殑錛屼絾鏄紝瀹冨拰Java鍏鋒湁鐨勭浉鍚岀洰鏍囨鏄鉤鍙扮嫭绔嬫с傞氳繃灝咼ava鍜孹ML鐨勭粍鍚堬紝鎮(zhèn)ㄥ彲浠ュ緱鍒頒竴涓畬緹庣殑鍏鋒湁騫沖彴鐙珛鎬х殑瑙e喅鏂規(guī)銆?
JMS(Java Message Service):
MS鏄敤浜庡拰闈㈠悜娑堟伅鐨勪腑闂翠歡鐩鎬簰閫氫俊鐨勫簲鐢ㄧ▼搴忔帴鍙?API)銆傚畠鏃㈡敮鎸佺偣瀵圭偣鐨勫煙錛屾湁鏀寔鍙戝竷/璁㈤槄(publish/subscribe)綾誨瀷鐨勫煙錛屽茍涓旀彁渚涘涓嬪垪綾誨瀷鐨勬敮鎸侊細(xì)緇忚鍙殑娑堟伅浼犻?浜嬪姟鍨嬫秷鎭殑浼犻掞紝涓鑷存ф秷鎭拰鍏鋒湁鎸佷箙鎬х殑璁㈤槄鑰呮敮鎸併侸MS榪樻彁渚涗簡(jiǎn)鍙︿竴縐嶆柟寮忔潵瀵規(guī)偍鐨勫簲鐢ㄤ笌鏃х殑鍚庡彴緋葷粺鐩擱泦鎴愩?
JTA(Java Transaction Architecture):
JTA瀹氫箟浜?jiǎn)涓縐嶆爣鍑嗙殑API錛屽簲鐢ㄧ郴緇熺敱姝ゅ彲浠ヨ闂悇縐嶄簨鍔$洃鎺с?
JTS(Java Transaction Service):
JTS鏄疌ORBA OTS浜嬪姟鐩戞帶鐨勫熀鏈殑瀹炵幇銆侸TS瑙勫畾浜?jiǎn)浜嬪姟绠$悊鍣ㄧ殑瀹炵幇鏂瑰紡銆傝浜嬪姟綆$悊鍣ㄦ槸鍦ㄩ珮灞傛敮鎸丣ava Transaction API (JTA)瑙勮寖錛屽茍涓斿湪杈冨簳灞傚疄鐜癘MG OTS specification鐨凧ava鏄犲儚銆侸TS浜嬪姟綆$悊鍣ㄤ負(fù)搴旂敤鏈嶅姟鍣ㄣ佽祫婧愮鐞嗗櫒銆佺嫭绔嬬殑搴旂敤浠ュ強(qiáng)閫氫俊璧勬簮綆$悊鍣ㄦ彁渚涗簡(jiǎn)浜嬪姟鏈嶅姟銆?
JavaMail:
JavaMail鏄敤浜庡瓨鍙栭偖浠舵湇鍔″櫒鐨凙PI錛屽畠鎻愪緵浜?jiǎn)涓濂楅偖浠舵湇鍔″櫒鐨勬娊璞$被銆備笉浠呮敮鎸丼MTP鏈嶅姟鍣紝涔熸敮鎸両MAP鏈嶅姟鍣ㄣ?
JAF(JavaBeans Activation Framework):
JavaMail鍒╃敤JAF鏉ュ鐞哅IME緙栫爜鐨勯偖浠墮檮浠躲侻IME鐨勫瓧鑺傛祦鍙互琚漿鎹㈡垚Java瀵硅薄錛屾垨鑰呰漿鎹㈣嚜Java瀵硅薄銆傚ぇ澶氭暟搴旂敤閮藉彲浠ヤ笉闇瑕佺洿鎺ヤ嬌鐢↗AF銆?