锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 錛?/span>1錛夈?/span>java.lang.String split String value = "a,b,c,d,e"; String[] names = value.split(","); for(int i=0,n=names.length;i System.out.print(names[i]); } public String[] split(String regex)鍏朵腑鐨勫弬鏁幫紝琛ㄧず姝e垯琛ㄨ揪寮忋?/span> 錛?錛夈佽緗〉闈笉緙撳瓨淇℃伅錛堝湪榪囨護鍣ㄤ腑璁劇疆錛?/span> httpResponse.setHeader("Cache-Control", "no-cache"); httpResponse.setHeader("Cache-Control", "no-store"); httpResponse.setDateHeader("Expires", 0); 絎簩錛孉nonymous Inner Class (鍖垮悕鍐呴儴綾? 鏄惁鍙互extends(緇ф壙)鍏跺畠綾伙紝鏄惁鍙互implements(瀹炵幇)interface(鎺ュ彛)? 絎笁錛孲tatic Nested Class 鍜?Inner Class鐨勪笉鍚岋紝璇村緱瓚婂瓚婂ソ(闈㈣瘯棰樻湁鐨勫緢絎肩粺)銆?br />
絎洓錛?amp;鍜?amp;&鐨勫尯鍒?br />
絎簲錛孒ashMap鍜孒ashtable鐨勫尯鍒?br />
絎叚錛孋ollection 鍜?Collections鐨勫尯鍒?br />
銆銆 絎竷錛屼粈涔堟椂鍊欑敤assert銆?br />
絎叓錛孏C鏄粈涔? 涓轟粈涔堣鏈塆C? 絎節錛孲tring s = new String("xyz");鍒涘緩浜嗗嚑涓猄tring Object? 絎崄錛孧ath.round(11.5)絳夋柤澶氬皯? Math.round(-11.5)絳夋柤澶氬皯? 絎崄涓錛宻hort s1 = 1; s1 = s1 + 1;鏈変粈涔堥敊? short s1 = 1; s1 += 1;鏈変粈涔堥敊? 銆short s1 = 1; s1 = s1 + 1; 錛坰1+1榪愮畻緇撴灉鏄痠nt鍨嬶紝闇瑕佸己鍒惰漿鎹㈢被鍨嬶級short s1 = 1; s1 += 1;錛堝彲浠ユ紜紪璇戯級銆銆 絎崄浜岋紝sleep() 鍜?wait() 鏈変粈涔堝尯鍒? 絎崄涓夛紝Java鏈夋病鏈塯oto? 絎崄鍥涳紝鏁扮粍鏈夋病鏈塴ength()榪欎釜鏂規硶? String鏈夋病鏈塴ength()榪欎釜鏂規硶錛?br />
絎崄浜旓紝Overload鍜孫verride鐨勫尯鍒侽verloaded鐨勬柟娉曟槸鍚﹀彲浠ユ敼鍙樿繑鍥炲肩殑綾誨瀷? 絎崄鍏紝error鍜宔xception鏈変粈涔堝尯鍒? 絎崄涔濓紝List, Set, Map鏄惁緇ф壙鑷狢ollection鎺ュ彛? 絎簩鍗侊紝abstract class鍜宨nterface鏈変粈涔堝尯鍒? 絎簩鍗佷竴錛宎bstract鐨刴ethod鏄惁鍙悓鏃舵槸static,鏄惁鍙悓鏃舵槸native錛屾槸鍚﹀彲鍚屾椂鏄痵ynchronized? 絎簩鍗佷簩錛屾帴鍙f槸鍚﹀彲緇ф壙鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲瀹炵幇(implements)鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲緇ф壙瀹炰綋綾?concrete class)? 絎簩鍗佷笁錛屽惎鍔ㄤ竴涓嚎紼嬫槸鐢╮un()榪樻槸start()? 絎簩鍗佸洓錛屾瀯閫犲櫒Constructor鏄惁鍙override? 絎簩鍗佷簲錛屾槸鍚﹀彲浠ョ戶鎵縎tring綾? 絎簩鍗佸叚錛屽綋涓涓嚎紼嬭繘鍏ヤ竴涓璞$殑涓涓猻ynchronized鏂規硶鍚庯紝鍏跺畠綰跨▼鏄惁鍙繘鍏ユ瀵硅薄鐨勫叾瀹冩柟娉? 絎簩鍗佷竷錛宼ry {}閲屾湁涓涓猺eturn璇彞錛岄偅涔堢揣璺熷湪榪欎釜try鍚庣殑finally {}閲岀殑code浼氫笉浼氳鎵ц錛屼粈涔堟椂鍊欒鎵ц錛屽湪return鍓嶈繕鏄悗? 絎簩鍗佸叓錛岀紪紼嬮: 鐢ㄦ渶鏈夋晥鐜囩殑鏂規硶綆楀嚭2涔樹互8絳夋柤鍑? 絎簩鍗佷節錛屼袱涓璞″肩浉鍚?x.equals(y) == true)錛屼絾鍗村彲鏈変笉鍚岀殑hash code錛岃繖鍙ヨ瘽瀵逛笉瀵? 絎笁鍗侊紝褰撲竴涓璞¤褰撲綔鍙傛暟浼犻掑埌涓涓柟娉曞悗錛屾鏂規硶鍙敼鍙樿繖涓璞$殑灞炴э紝騫跺彲榪斿洖鍙樺寲鍚庣殑緇撴灉錛岄偅涔堣繖閲屽埌搴曟槸鍊間紶閫掕繕鏄紩鐢ㄤ紶閫? 絎笁鍗佷竴錛宻wtich鏄惁鑳戒綔鐢ㄥ湪byte涓婏紝鏄惁鑳戒綔鐢ㄥ湪long涓婏紝鏄惁鑳戒綔鐢ㄥ湪String涓? 絎笁鍗佷簩錛岀紪紼嬮: 鍐欎竴涓猄ingleton鍑烘潵銆?br />
1>濡傛灉a鏄被A鐨勪竴涓紩鐢紝閭d箞錛宎鍙互鎸囧悜綾籄鐨勪竴涓疄渚嬶紝鎴栬呰鎸囧悜綾籄鐨勪竴涓瓙綾伙紝榪欐槸鍚戜笂杞瀷鐨勬儏褰€?br />
2>濡傛灉a鏄被A鐨勪竴涓紩鐢紝閭d箞錛宎蹇呴』鎸囧悜瀹炵幇浜嗘帴鍙鐨勪竴涓被鐨勫疄渚嬨傝繖鏄帴鍙e洖璋冪殑鎯呭艦銆傚湪java閲岄潰錛屽悜涓婅漿鍨嬫槸鑷姩榪涜鐨勶紝浣嗘槸鍚戜笅杞瀷鍗翠笉鏄紝闇瑕佹垜浠嚜宸卞畾涔夊己鍒惰繘琛屻?br />
浠庡疄鐜頒簡鏌愭帴鍙g殑瀵硅薄錛屽緱鍒板姝ゆ帴鍙g殑寮曠敤錛屼笌鍚戜笂杞瀷涓鴻繖涓璞$殑鍩虹被錛屽疄璐ㄤ笂鏁堟灉鏄竴鏍風殑銆傝繖浜涘璞¢兘鍙互璋冪敤鍩虹被鍨嬫彁渚涚殑鏂規硶錛屽浜庢帴鍙f潵璇村氨鏄洖璋冩帴鍙d腑鐨勬柟娉曪紝瀵逛簬鐖剁被鏉ヨ灝辨槸璋冪敤鐖剁被鐨勬柟娉曘傚綋鐒跺湪鍚戜笂杞瀷鐨勬儏鍐典笅錛岃繕鐗墊壇鍒板瓙綾婚噸鍐欑埗綾繪柟娉曠殑鎯呭艦銆?
]]>
package com.wyq.WebFilter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class ContextFilter implements Filter{
private String onErrorUrl;
private FilterConfig filterConfig;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain doFilter) throws IOException, ServletException {
HttpServletRequest httpRequest=(HttpServletRequest)request;
HttpServletResponse httpResponse=(HttpServletResponse)response;
HttpSession httpSession=httpRequest.getSession();
httpResponse.setHeader("Cache-Control", "no-cache");
httpResponse.setHeader("Cache-Control", "no-store");
httpResponse.setDateHeader("Expires", 0);
if(httpSession.getAttribute("epAccountInfo")==null){
ActionErrors errors=new ActionErrors();
errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("娌℃湁鐧婚檰"));
httpRequest.setAttribute(Globals.ERROR_KEY,errors);
httpRequest.getRequestDispatcher(onErrorUrl).forward(httpRequest, httpResponse);
}else{
doFilter.doFilter(request, response);
}
}
public void init(FilterConfig config) throws ServletException {
filterConfig=config;
onErrorUrl=filterConfig.getInitParameter("onError");
if(onErrorUrl==null||"".equals(onErrorUrl)){
onErrorUrl="onError";
}
}
}
(3)select * from TH_INT_ORG a where PAR_INT_ORG_ID is null 鍒ゆ柇鏌愪釜瀛楁涓虹┖鐨勭邯褰曪紝瑕佺敤is null
]]>
銆final 鐢ㄤ簬澹版槑灞炴э紝鏂規硶鍜岀被錛屽垎鍒〃紺哄睘鎬т笉鍙彉錛屾柟娉曚笉鍙鐩栵紝綾諱笉鍙戶鎵褲俧inally鏄紓甯稿鐞嗚鍙ョ粨鏋勭殑涓閮ㄥ垎錛岃〃紺烘繪槸鎵ц銆俧inalize鏄?Object綾葷殑涓涓柟娉曪紝鍦ㄥ瀮鍦炬敹闆嗗櫒鎵ц鐨勬椂鍊欎細璋冪敤琚洖鏀跺璞$殑姝ゆ柟娉曪紝鍙互瑕嗙洊姝ゆ柟娉曟彁渚涘瀮鍦炬敹闆嗘椂鐨勫叾浠栬祫婧愬洖鏀訛紝渚嬪鍏抽棴鏂囦歡絳夈?/p>
銆鍙互緇ф壙鍏朵粬綾繪垨瀹屾垚鍏朵粬鎺ュ彛錛屽湪swing緙栫▼涓父鐢ㄦ鏂瑰紡銆傘
銆Static Nested Class鏄澹版槑涓洪潤鎬侊紙static錛夌殑鍐呴儴綾伙紝瀹冨彲浠ヤ笉渚濊禆浜庡閮ㄧ被瀹炰緥琚疄渚嬪寲銆傝岄氬父鐨勫唴閮ㄧ被闇瑕佸湪澶栭儴綾誨疄渚嬪寲鍚庢墠鑳藉疄渚嬪寲銆傘銆
銆&鏄綅榪愮畻絎︼紝琛ㄧず鎸変綅涓庤繍綆楋紝&&鏄昏緫榪愮畻絎︼紝琛ㄧず閫昏緫涓庯紙and錛?銆銆
銆HashMap鏄疕ashtable鐨勮交閲忕駭瀹炵幇錛堥潪綰跨▼瀹夊叏鐨勫疄鐜幫級錛屼粬浠兘瀹屾垚浜哅ap鎺ュ彛錛屼富瑕佸尯鍒湪浜嶩ashMap鍏佽絀猴紙null錛夐敭鍊鹼紙key錛?鐢變簬闈炵嚎紼?a class="channel_keylink" target="_blank">瀹夊叏錛屾晥鐜囦笂鍙兘楂樹簬Hashtable.銆銆
銆Collection鏄泦鍚堢被鐨勪笂綰ф帴鍙o紝緇ф壙涓庝粬鐨勬帴鍙d富瑕佹湁Set 鍜孡ist.Collections鏄拡瀵歸泦鍚堢被鐨勪竴涓府鍔╃被錛屼粬鎻愪緵涓緋誨垪闈欐佹柟娉曞疄鐜板鍚勭闆嗗悎鐨勬悳绱€佹帓搴忋佺嚎紼嬪畨鍏ㄥ寲絳夋搷浣溿傘銆
銆1.4鏂板鍏抽敭瀛楋紙璇硶錛夛紝鐢ㄤ簬嫻嬭瘯boolean琛ㄨ揪寮忕姸鎬侊紝鍙敤浜庤皟璇曠▼搴忋備嬌鐢ㄦ柟娉?assert
銆銆
銆GC鏄瀮鍦炬敹闆嗙殑鎰忔濓紙Gabage Collection錛?鍐呭瓨澶勭悊鏄紪紼嬩漢鍛樺鏄撳嚭鐜伴棶棰樼殑鍦版柟錛屽繕璁版垨鑰呴敊璇殑鍐呭瓨鍥炴敹浼氬鑷寸▼搴忔垨緋葷粺鐨勪笉紼沖畾鐢氳嚦宕╂簝錛?a class="channel_keylink" target="_blank">Java鎻愪緵鐨凣C鍔熻兘鍙互 鑷姩鐩戞祴瀵硅薄鏄惁瓚呰繃浣滅敤鍩熶粠鑰岃揪鍒拌嚜鍔ㄥ洖鏀跺唴瀛樼殑鐩殑錛?a class="channel_keylink" target="_blank">Java璇█娌℃湁鎻愪緵閲婃斁宸插垎閰嶅唴瀛樼殑鏄劇ず鎿嶄綔鏂規硶銆?銆銆
銆涓や釜銆銆
銆Math.round(11.5)==12Math.round(-11.5)==-11round鏂規硶榪斿洖涓庡弬鏁版渶鎺ヨ繎鐨勯暱鏁存暟錛屽弬鏁板姞1/2鍚庢眰鍏秄loor.銆銆
銆sleep鏄嚎紼嬬被錛圱hread錛夌殑鏂規硶錛屽鑷存綰跨▼鏆傚仠鎵ц鎸囧畾鏃墮棿錛岀粰鎵ц鏈轟細緇欏叾浠栫嚎紼嬶紝浣嗘槸鐩戞帶鐘舵佷緷鐒朵繚鎸侊紝鍒版椂鍚庝細鑷姩鎭㈠銆傝皟鐢?sleep涓嶄細閲婃斁瀵硅薄閿併倃ait鏄疧bject綾葷殑鏂規硶錛屽姝ゅ璞¤皟鐢╳ait鏂規硶瀵艱嚧鏈嚎紼嬫斁寮冨璞¢攣錛岃繘鍏ョ瓑寰呮瀵硅薄鐨勭瓑寰呴攣瀹氭睜錛屽彧鏈夐拡瀵規瀵?璞″彂鍑簄otify鏂規硶錛堟垨notifyAll錛夊悗鏈嚎紼嬫墠榪涘叆瀵硅薄閿佸畾姹犲噯澶囪幏寰楀璞¢攣榪涘叆榪愯鐘舵併傘銆
銆娌℃湁銆銆寰堝崄涓夌殑闂錛屽鏋滃摢涓潰璇曠殑闂埌榪欎釜闂錛屾垜鍔濅綘榪樻槸鍒繘榪欏鍏徃銆?/p>
銆鏁扮粍娌℃湁length()榪欎釜鏂規硶錛屾湁length鐨勫睘鎬с?br />
銆String鏈夋湁length()榪欎釜鏂規硶銆?/p>
銆鏂規硶鐨勯噸鍐橭verriding鍜岄噸杞絆verloading鏄疛ava澶氭佹х殑涓嶅悓琛ㄧ幇銆傞噸鍐橭verriding鏄埗綾諱笌瀛愮被涔嬮棿澶氭佹х殑涓縐嶈〃鐜幫紝 閲嶈澆Overloading鏄竴涓被涓鎬佹х殑涓縐嶈〃鐜般傚鏋滃湪瀛愮被涓畾涔夋煇鏂規硶涓庡叾鐖剁被鏈夌浉鍚岀殑鍚嶇О鍜屽弬鏁幫紝鎴戜滑璇磋鏂規硶琚噸鍐?(Overriding)銆傚瓙綾葷殑瀵硅薄浣跨敤榪欎釜鏂規硶鏃訛紝灝嗚皟鐢ㄥ瓙綾諱腑鐨勫畾涔夛紝瀵瑰畠鑰岃█錛岀埗綾諱腑鐨勫畾涔夊鍚岃“灞忚斀”浜嗐傚鏋滃湪涓涓被涓畾涔変簡澶氫釜鍚屽悕鐨勬柟 娉曪紝瀹冧滑鎴栨湁涓嶅悓鐨勫弬鏁頒釜鏁版垨鏈変笉鍚岀殑鍙傛暟綾誨瀷錛屽垯縐頒負鏂規硶鐨勯噸杞?Overloading)銆侽verloaded鐨勬柟娉曟槸鍙互鏀瑰彉榪斿洖鍊肩殑綾誨瀷銆?/p>
絎崄鍏紝Set閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤浠涔堟柟娉曟潵鍖哄垎閲嶅涓庡惁鍛? 鏄敤==榪樻槸equals()? 瀹冧滑鏈変綍鍖哄埆?
銆Set閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤iterator()鏂規硶鏉ュ尯鍒嗛噸澶嶄笌鍚︺俥quals()鏄垽璇諱袱涓猄et鏄惁鐩哥瓑銆?br />
equals()鍜?=鏂規硶鍐沖畾寮曠敤鍊兼槸鍚︽寚鍚戝悓涓瀵硅薄equals()鍦ㄧ被涓瑕嗙洊錛屼負鐨勬槸褰撲袱涓垎紱葷殑瀵硅薄鐨勫唴瀹瑰拰綾誨瀷鐩擱厤鐨勮瘽錛岃繑鍥炵湡鍊箋?br />
銆error 琛ㄧず鎭㈠涓嶆槸涓嶅彲鑳戒絾寰堝洶闅劇殑鎯呭喌涓嬬殑涓縐嶄弗閲嶉棶棰樸傛瘮濡傝鍐呭瓨婧㈠嚭銆備笉鍙兘鎸囨湜紼嬪簭鑳藉鐞嗚繖鏍風殑鎯呭喌銆?br />
銆exception 琛ㄧず涓縐嶈璁℃垨瀹炵幇闂銆備篃灝辨槸璇達紝瀹冭〃紺哄鏋滅▼搴忚繍琛屾甯革紝浠庝笉浼氬彂鐢熺殑鎯呭喌銆?/p>
List錛孲et鏄?br />
Map涓嶆槸
銆澹版槑鏂規硶鐨勫瓨鍦ㄨ屼笉鍘誨疄鐜板畠鐨勭被琚彨鍋氭娊璞$被錛坅bstract class錛夛紝瀹冪敤浜庤鍒涘緩涓涓綋鐜版煇浜涘熀鏈涓虹殑綾伙紝騫朵負璇ョ被澹版槑鏂規硶錛屼絾涓嶈兘鍦ㄨ綾諱腑瀹炵幇璇ョ被鐨勬儏鍐點備笉鑳藉垱寤篴bstract 綾葷殑瀹炰緥銆傜劧鑰屽彲浠ュ垱寤轟竴涓彉閲忥紝鍏剁被鍨嬫槸涓涓娊璞$被錛屽茍璁╁畠鎸囧悜鍏蜂綋瀛愮被鐨勪竴涓疄渚嬨備笉鑳芥湁鎶借薄鏋勯犲嚱鏁版垨鎶借薄闈欐佹柟娉曘侫bstract 綾葷殑瀛愮被涓哄畠浠埗綾諱腑鐨勬墍鏈夋娊璞℃柟娉曟彁渚涘疄鐜幫紝鍚﹀垯瀹冧滑涔熸槸鎶借薄綾諱負銆傚彇鑰屼唬涔嬶紝鍦ㄥ瓙綾諱腑瀹炵幇璇ユ柟娉曘傜煡閬撳叾琛屼負鐨勫叾瀹冪被鍙互鍦ㄧ被涓疄鐜拌繖浜涙柟娉曘?br />
銆鎺ュ彛錛坕nterface錛夋槸鎶借薄綾葷殑鍙樹綋銆傚湪鎺ュ彛涓紝鎵鏈夋柟娉曢兘鏄娊璞$殑銆傚緇ф壙鎬у彲閫氳繃瀹炵幇榪欐牱鐨勬帴鍙h岃幏寰椼傛帴鍙d腑鐨勬墍鏈夋柟娉曢兘鏄娊璞$殑錛屾病鏈変竴涓?鏈夌▼搴忎綋銆傛帴鍙e彧鍙互瀹氫箟static final鎴愬憳鍙橀噺銆傛帴鍙g殑瀹炵幇涓庡瓙綾葷浉浼鹼紝闄や簡璇ュ疄鐜扮被涓嶈兘浠庢帴鍙e畾涔変腑緇ф壙琛屼負銆傚綋綾誨疄鐜扮壒孌婃帴鍙f椂錛屽畠瀹氫箟錛堝嵆灝嗙▼搴忎綋緇欎簣錛夋墍鏈夎繖縐嶆帴鍙g殑鏂規硶銆?鐒跺悗錛屽畠鍙互鍦ㄥ疄鐜頒簡璇ユ帴鍙g殑綾葷殑浠諱綍瀵硅薄涓婅皟鐢ㄦ帴鍙g殑鏂規硶銆傜敱浜庢湁鎶借薄綾伙紝瀹冨厑璁鎬嬌鐢ㄦ帴鍙e悕浣滀負寮曠敤鍙橀噺鐨勭被鍨嬨傞氬父鐨勫姩鎬佽仈緙栧皢鐢熸晥銆傚紩鐢ㄥ彲浠ヨ漿鎹㈠埌 鎺ュ彛綾誨瀷鎴栦粠鎺ュ彛綾誨瀷杞崲錛宨nstanceof 榪愮畻絎﹀彲浠ョ敤鏉ュ喅瀹氭煇瀵硅薄鐨勭被鏄惁瀹炵幇浜嗘帴鍙c?/p>
閮戒笉鑳?/p>
銆鎺ュ彛鍙互緇ф壙鎺ュ彛銆傛娊璞$被鍙互瀹炵幇(implements)鎺ュ彛錛屾娊璞$被鏄惁鍙戶鎵垮疄浣撶被錛屼絾鍓嶆彁鏄疄浣撶被蹇呴』鏈夋槑紜殑鏋勯犲嚱鏁般?/p>
銆鍚姩涓涓嚎紼嬫槸璋冪敤start()鏂規硶錛屼嬌綰跨▼鎵浠h〃鐨勮櫄鎷熷鐞嗘満澶勪簬鍙繍琛岀姸鎬侊紝榪欐剰鍛崇潃瀹冨彲浠ョ敱JVM璋冨害騫舵墽琛屻傝繖騫朵笉鎰忓懗鐫綰跨▼灝變細绔嬪嵆榪愯銆俽un()鏂規硶鍙互浜х敓蹇呴』閫鍑虹殑鏍囧織鏉ュ仠姝竴涓嚎紼嬨?/p>
銆鏋勯犲櫒Constructor涓嶈兘琚戶鎵匡紝鍥犳涓嶈兘閲嶅啓Overriding錛屼絾鍙互琚噸杞絆verloading銆?/p>
銆String綾繪槸final綾繪晠涓嶅彲浠ョ戶鎵褲?/p>
銆涓嶈兘錛屼竴涓璞$殑涓涓猻ynchronized鏂規硶鍙兘鐢變竴涓嚎紼嬭闂?/p>
浼氭墽琛岋紝鍦╮eturn鍓嶆墽琛屻?/p>
鏈塁鑳屾櫙鐨勭▼搴忓憳鐗瑰埆鍠滄闂繖縐嶉棶棰樸?br />
2 << 3
涓嶅錛屾湁鐩稿悓鐨刪ash code銆?/p>
銆鏄間紶閫掋侸ava 緙栫▼璇█鍙敱鍊間紶閫掑弬鏁般傚綋涓涓璞″疄渚嬩綔涓轟竴涓弬鏁拌浼犻掑埌鏂規硶涓椂錛屽弬鏁扮殑鍊煎氨鏄璇ュ璞$殑寮曠敤銆傚璞$殑鍐呭鍙互鍦ㄨ璋冪敤鐨勬柟娉曚腑鏀瑰彉錛屼絾瀵硅薄鐨勫紩鐢ㄦ槸姘歌繙涓嶄細鏀瑰彉鐨勩?/p>
銆switch錛坋xpr1錛変腑錛宔xpr1鏄竴涓暣鏁拌〃杈懼紡銆傚洜姝や紶閫掔粰 switch 鍜?case 璇彞鐨勫弬鏁板簲璇ユ槸 int銆?short銆?char 鎴栬?byte銆俵ong,string 閮戒笉鑳戒綔鐢ㄤ簬swtich銆?/p>
Singleton妯″紡涓昏浣滅敤鏄繚璇佸湪Java搴旂敤紼嬪簭涓紝涓涓被Class鍙湁涓涓疄渚嬪瓨鍦ㄣ?br />
涓鑸琒ingleton妯″紡閫氬父鏈夊嚑縐嶇褰㈠紡:
銆絎竴縐嶅艦寮? 瀹氫箟涓涓被錛屽畠鐨勬瀯閫犲嚱鏁頒負private鐨勶紝瀹冩湁涓涓猻tatic鐨刾rivate鐨勮綾誨彉閲忥紝鍦ㄧ被鍒濆鍖栨椂瀹炰緥璇濓紝閫氳繃涓涓猵ublic鐨刧etInstance鏂規硶鑾峰彇瀵瑰畠鐨勫紩鐢?緇ц岃皟鐢ㄥ叾涓殑鏂規硶銆?/p>
public class Singleton {
銆銆private Singleton(){}
銆銆//鍦ㄨ嚜宸卞唴閮ㄥ畾涔夎嚜宸變竴涓疄渚嬶紝鏄笉鏄緢濂囨紵
銆銆//娉ㄦ剰榪欐槸private 鍙緵鍐呴儴璋冪敤
銆銆private static Singleton instance = new Singleton();
銆銆//榪欓噷鎻愪緵浜嗕竴涓緵澶栭儴璁塊棶鏈琧lass鐨勯潤鎬佹柟娉曪紝鍙互鐩存帴璁塊棶銆銆
銆銆public static Singleton getInstance() {
銆銆銆銆return instance; 銆銆
銆銆 }
}
絎簩縐嶅艦寮?
public class Singleton { 銆銆private static Singleton instance = null; 銆銆public static synchronized Singleton getInstance() { 銆銆//榪欎釜鏂規硶姣斾笂闈㈡湁鎵鏀硅繘錛屼笉鐢ㄦ瘡嬈¢兘榪涜鐢熸垚瀵硅薄錛屽彧鏄涓嬈°銆銆 銆 銆銆//浣跨敤鏃剁敓鎴愬疄渚嬶紝鎻愰珮浜嗘晥鐜囷紒 銆銆if (instance==null) 銆銆銆銆instance錛漬ew Singleton(); return instance; 銆銆} } |
鍏亀ait()鍜宯otify()銆乶otifyAll()
榪欎笁涓柟娉曠敤浜庡崗璋冨涓嚎紼嬪鍏變韓鏁版嵁鐨勫瓨鍙栵紝鎵浠ュ繀欏誨湪Synchronized璇彞鍧楀唴浣跨敤榪欎笁涓柟娉曘傚墠闈㈣榪嘢ynchronized榪欎釜鍏抽敭瀛楃敤浜庝繚鎶ゅ叡浜暟鎹紝闃繪鍏朵粬綰跨▼瀵瑰叡浜暟鎹殑瀛樺彇銆備絾鏄繖鏍風▼搴忕殑嫻佺▼灝卞緢涓嶇伒媧諱簡錛屽浣曟墠鑳藉湪褰撳墠綰跨▼榪樻病閫鍑篠ynchronized鏁版嵁鍧楁椂璁╁叾浠栫嚎紼嬩篃鏈夋満浼氳闂叡浜暟鎹憿錛熸鏃跺氨鐢ㄨ繖涓変釜鏂規硶鏉ョ伒媧繪帶鍒躲?
wait()鏂規硶浣垮綋鍓嶇嚎紼嬫殏鍋滄墽琛屽茍閲婃斁瀵硅薄閿佹爣蹇楋紝璁╁叾浠栫嚎紼嬪彲浠ヨ繘鍏ynchronized鏁版嵁鍧楋紝褰撳墠綰跨▼琚斁鍏ュ璞$瓑寰呮睜涓傚綋璋冪敤 notify()鏂規硶鍚庯紝灝嗕粠瀵硅薄鐨勭瓑寰呮睜涓Щ璧頒竴涓換鎰忕殑綰跨▼騫舵斁鍒伴攣鏍囧織絳夊緟姹犱腑錛屽彧鏈夐攣鏍囧織絳夊緟姹犱腑鐨勭嚎紼嬭兘澶熻幏鍙栭攣鏍囧織錛涘鏋滈攣鏍囧織絳夊緟姹犱腑娌℃湁綰跨▼錛屽垯notify()涓嶈搗浣滅敤銆?
notifyAll()鍒欎粠瀵硅薄絳夊緟姹犱腑縐昏蛋鎵鏈夌瓑寰呴偅涓璞$殑綰跨▼騫舵斁鍒伴攣鏍囧織絳夊緟姹犱腑銆?/p>
鍦↗AVA涓紝瑕佸紑濮嬩竴涓嚎紼嬶紝鏈変袱縐嶆柟寮忋備竴鏄洿鎺ヨ皟鐢═hread瀹炰緥鐨剆tart()鏂規硶錛屼簩鏄?/font>灝哛unable瀹炰緥浼犵粰涓涓猅hread瀹炰緥鐒跺悗璋冪敤瀹冪殑start()鏂規硶銆傜嚎紼嬪璞″拰綰跨▼鏄袱涓畬鍏ㄤ笉鍚岀殑姒傚康銆傝繖閲屾垜浠啀嬈℃繁鍏ヤ竴涓嬶紝鐢熸垚涓涓嚎紼嬬殑瀹炰緥錛屽茍涓嶄唬琛ㄥ惎鍔ㄤ簡綰跨▼銆傝屽惎鍔ㄧ嚎紼嬫槸璇村湪鏌愪釜綰跨▼瀵硅薄涓婂惎鍔ㄤ簡璇ュ疄渚嬪搴旂殑綰跨▼錛屽綋璇ョ嚎紼嬬粨鏉熷悗錛屽茍涓嶄細灝辯珛鍗蟲秷澶便?br /> 鍦ㄧ嚎紼嬪璞涓婅皟鐢╦oin()鏂規硶錛屽氨鏄褰撳墠姝e湪鎵ц鐨勭嚎紼嬬瓑寰呯嚎紼嬪璞瀵瑰簲鐨勭嚎紼嬭繍琛屽畬鎴愬悗鎵嶇戶緇繍琛屻?br /> 錛?錛夈侀氳繃Thread瀹炰緥鐨剆tart()錛屼竴涓猅hread鐨勫疄渚嬪彧鑳戒駭鐢熶竴涓嚎紼嬶紝涓嶅悓瀹炰緥鐨勫涓嚎紼?br /> 錛?錛夈丷unnable鐨勫疄渚嬫槸鍙繍琛岀殑錛屼絾瀹冭嚜宸卞茍涓嶈兘鐩存帴榪愯錛屽畠闇瑕佽Thread瀵硅薄鏉ュ寘瑁呮墠琛岃繍琛?鍚屼竴瀹炰緥(Runnable瀹炰緥)鐨勫涓嚎紼?/font>
3. java瀵瑰瓧絎︾殑澶勭悊
鍦╦ava搴旂敤杞歡涓紝浼氭湁澶氬娑夊強鍒板瓧絎﹂泦緙栫爜錛屾湁浜涘湴鏂歸渶瑕佽繘琛屾紜殑璁劇疆錛屾湁浜涘湴鏂歸渶瑕佽繘琛屼竴瀹氱▼搴︾殑澶勭悊銆?/font>
3.1. getBytes(charset)
榪欐槸java瀛楃涓插鐞嗙殑涓涓爣鍑嗗嚱鏁幫紝鍏朵綔鐢ㄦ槸灝嗗瓧絎︿覆鎵琛ㄧず鐨勫瓧絎︽寜鐓harset緙栫爜錛屽茍浠ュ瓧鑺傛柟寮忚〃紺恒傛敞鎰忓瓧絎︿覆鍦╦ava鍐呭瓨涓繪槸鎸塽nicode緙栫爜瀛樺偍鐨勩傛瘮濡?涓枃"錛屾甯告儏鍐典笅錛堝嵆娌℃湁閿欒鐨勬椂鍊欙級瀛樺偍涓?4e2d 6587"錛屽鏋渃harset涓?gbk"錛屽垯琚紪鐮佷負"d6d0 cec4"錛岀劧鍚庤繑鍥炲瓧鑺?d6 d0 ce c4"銆傚鏋渃harset涓?utf8"鍒欐渶鍚庢槸"e4 b8 ad e6 96 87"銆傚鏋滄槸"iso8859-1"錛屽垯鐢變簬鏃犳硶緙栫爜錛屾渶鍚庤繑鍥?"3f 3f"錛堜袱涓棶鍙鳳級銆?/font>
3.2. new String(charset)
榪欐槸java瀛楃涓插鐞嗙殑鍙︿竴涓爣鍑嗗嚱鏁幫紝鍜屼笂涓涓嚱鏁扮殑浣滅敤鐩稿弽錛屽皢瀛楄妭鏁扮粍鎸夌収charset緙栫爜榪涜緇勫悎璇嗗埆錛屾渶鍚庤漿鎹負unicode瀛樺偍銆傚弬鑰冧笂榪癵etBytes鐨勪緥瀛愶紝"gbk" 鍜?utf8"閮藉彲浠ュ緱鍑烘紜殑緇撴灉"4e2d 6587"錛屼絾iso8859-1鏈鍚庡彉鎴愪簡"003f 003f"錛堜袱涓棶鍙鳳級銆?/font>
鍥犱負utf8鍙互鐢ㄦ潵琛ㄧず/緙栫爜鎵鏈夊瓧絎︼紝鎵浠ew String( str.getBytes( "utf8" ), "utf8" ) === str錛屽嵆瀹屽叏鍙嗐?/font>
3.3. setCharacterEncoding()
璇ュ嚱鏁扮敤鏉ヨ緗甴ttp璇鋒眰鎴栬呯浉搴旂殑緙栫爜銆?/font>
瀵逛簬request錛屾槸鎸囨彁浜ゅ唴瀹圭殑緙栫爜錛屾寚瀹氬悗鍙互閫氳繃getParameter()鍒欑洿鎺ヨ幏寰楁紜殑瀛楃涓詫紝濡傛灉涓嶆寚瀹氾紝鍒欓粯璁や嬌鐢╥so8859-1緙栫爜錛岄渶瑕佽繘涓姝ュ鐞嗐傚弬瑙佷笅榪?琛ㄥ崟杈撳叆"銆傚煎緱娉ㄦ剰鐨勬槸鍦ㄦ墽琛宻etCharacterEncoding()涔嬪墠錛屼笉鑳芥墽琛屼換浣昰etParameter()銆俲ava doc涓婅鏄庯細This method must be called prior to reading request parameters or reading input using getReader()銆傝屼笖錛岃鎸囧畾鍙POST鏂規硶鏈夋晥錛屽GET鏂規硶鏃犳晥銆傚垎鏋愬師鍥狅紝搴旇鏄湪鎵ц絎竴涓猤etParameter()鐨勬椂鍊欙紝java灝嗕細鎸夌収緙栫爜鍒嗘瀽鎵鏈夌殑鎻愪氦鍐呭錛岃屽悗緇殑getParameter()涓嶅啀榪涜鍒嗘瀽錛屾墍浠etCharacterEncoding()鏃犳晥銆傝屽浜嶨ET鏂規硶鎻愪氦琛ㄥ崟鏄紝鎻愪氦鐨勫唴瀹瑰湪URL涓紝涓寮濮嬪氨宸茬粡鎸夌収緙栫爜鍒嗘瀽鎵鏈夌殑鎻愪氦鍐呭錛宻etCharacterEncoding()鑷劧灝辨棤鏁堛?/font>
瀵逛簬response錛屽垯鏄寚瀹氳緭鍑哄唴瀹圭殑緙栫爜錛屽悓鏃訛紝璇ヨ緗細浼犻掔粰嫻忚鍣紝鍛婅瘔嫻忚鍣ㄨ緭鍑哄唴瀹規墍閲囩敤鐨勭紪鐮併?/font>
3.4. 澶勭悊榪囩▼
涓嬮潰鍒嗘瀽涓や釜鏈変唬琛ㄦх殑渚嬪瓙錛岃鏄巎ava瀵圭紪鐮佹湁鍏抽棶棰樼殑澶勭悊鏂規硶銆?/font>
3.4.1. 琛ㄥ崟杈撳叆
User input *(gbk:d6d0 cec4) browser *(gbk:d6d0 cec4) web server iso8859-1(00d6 00d 000ce 00c4) class錛岄渶瑕佸湪class涓繘琛屽鐞嗭細getbytes("iso8859-1")涓篸6 d0 ce c4錛宯ew String("gbk")涓篸6d0 cec4錛屽唴瀛樹腑浠nicode緙栫爜鍒欎負4e2d 6587銆?/font>
l 鐢ㄦ埛杈撳叆鐨勭紪鐮佹柟寮忓拰欏甸潰鎸囧畾鐨勭紪鐮佹湁鍏籌紝涔熷拰鐢ㄦ埛鐨勬搷浣滅郴緇熸湁鍏籌紝鎵浠ユ槸涓嶇‘瀹氱殑錛屼笂渚嬩互gbk涓轟緥銆?/font>
l 浠巄rowser鍒皐eb server錛屽彲浠ュ湪琛ㄥ崟涓寚瀹氭彁浜ゅ唴瀹規椂浣跨敤鐨勫瓧絎﹂泦錛屽惁鍒欎細浣跨敤欏甸潰鎸囧畾鐨勭紪鐮併傝屽鏋滃湪url涓洿鎺ョ敤?鐨勬柟寮忚緭鍏ュ弬鏁幫紝鍒欏叾緙栫爜寰寰鏄搷浣滅郴緇熸湰韜殑緙栫爜錛屽洜涓鴻繖鏃跺拰欏甸潰鏃犲叧銆備笂榪頒粛鏃т互gbk緙栫爜涓轟緥銆?/font>
l Web server鎺ユ敹鍒扮殑鏄瓧鑺傛祦錛岄粯璁ゆ椂錛坓etParameter錛変細浠so8859-1緙栫爜澶勭悊涔嬶紝緇撴灉鏄笉姝g‘鐨勶紝鎵浠ラ渶瑕佽繘琛屽鐞嗐備絾濡傛灉棰勫厛璁劇疆浜嗙紪鐮侊紙閫氳繃request. setCharacterEncoding ()錛夛紝鍒欒兘澶熺洿鎺ヨ幏鍙栧埌姝g‘鐨勭粨鏋溿?/font>
l 鍦ㄩ〉闈腑鎸囧畾緙栫爜鏄釜濂戒範鎯紝鍚﹀垯鍙兘澶卞幓鎺у埗錛屾棤娉曟寚瀹氭紜殑緙栫爜銆?/font>
3.4.2. 鏂囦歡緙栬瘧
鍋囪鏂囦歡鏄痝bk緙栫爜淇濆瓨鐨勶紝鑰岀紪璇戞湁涓ょ緙栫爜閫夋嫨錛歡bk鎴栬卛so8859-1錛屽墠鑰呮槸涓枃windows鐨勯粯璁ょ紪鐮侊紝鍚庤呮槸linux鐨勯粯璁ょ紪鐮侊紝褰撶劧涔熷彲浠ュ湪緙栬瘧鏃舵寚瀹氱紪鐮併?/font>
Jsp *(gbk:d6d0 cec4) java file *(gbk:d6d0 cec4) compiler read uincode(gbk: 4e2d 6587; iso8859-1: 00d6 00d 000ce 00c4) compiler write utf(gbk: e4b8ad e69687; iso8859-1: *) compiled file unicode(gbk: 4e2d 6587; iso8859-1: 00d6 00d 000ce 00c4) class銆傛墍浠ョ敤gbk緙栫爜淇濆瓨錛岃岀敤iso8859-1緙栬瘧鐨勭粨鏋滄槸涓嶆紜殑銆?/font>
class unicode(4e2d 6587) system.out / jsp.out gbk(d6d0 cec4) os console / browser銆?/font>
l 鏂囦歡鍙互浠ュ縐嶇紪鐮佹柟寮忎繚瀛橈紝涓枃windows涓嬶紝榛樿涓篴nsi/gbk銆?/font>
l 緙栬瘧鍣ㄨ鍙栨枃浠舵椂錛岄渶瑕佸緱鍒版枃浠剁殑緙栫爜錛屽鏋滄湭鎸囧畾錛屽垯浣跨敤緋葷粺榛樿緙栫爜銆備竴鑸琧lass鏂囦歡錛屾槸浠ョ郴緇熼粯璁ょ紪鐮佷繚瀛樼殑錛屾墍浠ョ紪璇戜笉浼氬嚭闂錛屼絾瀵逛簬jsp鏂囦歡錛屽鏋滃湪涓枃windows涓嬬紪杈戜繚瀛橈紝鑰岄儴緗插湪鑻辨枃linux涓嬭繍琛?緙栬瘧錛屽垯浼氬嚭鐜伴棶棰樸傛墍浠ラ渶瑕佸湪jsp鏂囦歡涓敤pageEncoding鎸囧畾緙栫爜銆?/font>
l Java緙栬瘧鐨勬椂鍊欎細杞崲鎴愮粺涓鐨剈nicode緙栫爜澶勭悊錛屾渶鍚庝繚瀛樼殑鏃跺欏啀杞崲涓簎tf緙栫爜銆?/font>
l 褰撶郴緇熻緭鍑哄瓧絎︾殑鏃跺欙紝浼氭寜鎸囧畾緙栫爜杈撳嚭錛屽浜庝腑鏂噖indows涓嬶紝System.out灝嗕嬌鐢╣bk緙栫爜錛岃屽浜巖esponse錛堟祻瑙堝櫒錛夛紝鍒欎嬌鐢╦sp鏂囦歡澶存寚瀹氱殑contentType錛屾垨鑰呭彲浠ョ洿鎺ヤ負response鎸囧畾緙栫爜銆傚悓鏃訛紝浼氬憡璇塨rowser緗戦〉鐨勭紪鐮併傚鏋滄湭鎸囧畾錛屽垯浼氫嬌鐢╥so8859-1緙栫爜銆傚浜庝腑鏂囷紝搴旇涓篵rowser鎸囧畾杈撳嚭瀛楃涓茬殑緙栫爜銆?/font>
l browser鏄劇ず緗戦〉鐨勬椂鍊欙紝棣栧厛浣跨敤response涓寚瀹氱殑緙栫爜錛坖sp鏂囦歡澶存寚瀹氱殑contentType鏈緇堜篃鍙嶆槧鍦╮esponse涓婏級錛屽鏋滄湭鎸囧畾錛屽垯浼氫嬌鐢ㄧ綉欏典腑meta欏規寚瀹氫腑鐨刢ontentType銆?/font>
3.5. 鍑犲璁劇疆
瀵逛簬web搴旂敤紼嬪簭錛屽拰緙栫爜鏈夊叧鐨勮緗垨鑰呭嚱鏁板涓嬨?/font>
3.5.1. jsp緙栬瘧
鎸囧畾鏂囦歡鐨勫瓨鍌ㄧ紪鐮侊紝寰堟槑鏄撅紝璇ヨ緗簲璇ョ疆浜庢枃浠剁殑寮澶淬備緥濡傦細銆傚彟澶栵紝瀵逛簬涓鑸琧lass鏂囦歡錛屽彲浠ュ湪緙栬瘧鐨勬椂鍊欐寚瀹氱紪鐮併?/font>
3.5.2. jsp杈撳嚭
鎸囧畾鏂囦歡杈撳嚭鍒癰rowser鏄嬌鐢ㄧ殑緙栫爜錛岃璁劇疆涔熷簲璇ョ疆浜庢枃浠剁殑寮澶淬備緥濡傦細銆傝璁劇疆鍜宺esponse.setCharacterEncoding("GBK")絳夋晥銆?/font>
3.5.3. meta璁劇疆
鎸囧畾緗戦〉浣跨敤鐨勭紪鐮侊紝璇ヨ緗闈欐佺綉欏靛挨鍏舵湁浣滅敤銆傚洜涓洪潤鎬佺綉欏墊棤娉曢噰鐢╦sp鐨勮緗紝鑰屼笖涔熸棤娉曟墽琛宺esponse.setCharacterEncoding()銆備緥濡傦細
濡傛灉鍚屾椂閲囩敤浜唈sp杈撳嚭鍜宮eta璁劇疆涓ょ緙栫爜鎸囧畾鏂瑰紡錛屽垯jsp鎸囧畾鐨勪紭鍏堛傚洜涓簀sp鎸囧畾鐨勭洿鎺ヤ綋鐜板湪response涓?/font>
闇瑕佹敞鎰忕殑鏄紝apache鏈変竴涓緗彲浠ョ粰鏃犵紪鐮佹寚瀹氱殑緗戦〉鎸囧畾緙栫爜錛岃鎸囧畾絳夊悓浜巎sp鐨勭紪鐮佹寚瀹氭柟寮忥紝鎵浠ヤ細瑕嗙洊闈欐佺綉欏典腑鐨刴eta鎸囧畾銆傛墍浠ユ湁浜哄緩璁叧闂璁劇疆銆?/font>
3.5.4. form璁劇疆
褰撴祻瑙堝櫒鎻愪氦琛ㄥ崟鐨勬椂鍊欙紝鍙互鎸囧畾鐩稿簲鐨勭紪鐮併備緥濡傦細
銆備竴鑸笉蹇呬笉浣跨敤璇ヨ緗紝嫻忚鍣ㄤ細鐩存帴浣跨敤緗戦〉鐨勭紪鐮併?/font>
OutputStreamWriter out = ...
java.sql.Connection conn = ...
try {
銆Statement stat = conn.createStatement();
銆ResultSet rs = stat.executeQuery(
銆銆"select uid, name from user");
銆while (rs.next())
銆{
銆銆out.println("ID錛? + rs.getString("uid") + "錛屽鍚? " + rs.getString("name"));
銆}
}
catch(SQLException sqlex)
{
銆out.println("璀﹀憡錛氭暟鎹笉瀹屾暣");
銆throw new ApplicationException("璇誨彇鏁版嵁鏃跺嚭鐜癝QL閿欒", sqlex);
}
catch(IOException ioex)
{
銆throw new ApplicationException("鍐欏叆鏁版嵁鏃跺嚭鐜癐O閿欒", ioex);
}
finally
{
銆if (conn != null) {
銆銆try {
銆銆銆conn.close();
銆銆}
銆銆catch(SQLException sqlex2)
銆銆{
銆銆銆System.err(this.getClass().getName() + ".mymethod - 涓嶈兘鍏抽棴鏁版嵁搴撹繛鎺? " + sqlex2.toString());
銆銆}
銆}
銆if (out != null) {
銆銆try {
銆銆銆out.close();
銆銆}
銆銆catch(IOException ioex2)
銆銆{
銆銆銆System.err(this.getClass().getName() + ".mymethod - 涓嶈兘鍏抽棴杈撳嚭鏂囦歡" + ioex2.toString());
銆銆}
銆}
}
var jsParamValue=aaaa;
form1.jsParam.value=jsParamValue;
鐒跺悗灝卞彲浠equest.getPrameter("jsPrama");鏉ュ彇寰梛s鍙橀噺鍊間簡
4錛欰ction涓璻equest涓嶄細涓㈡帀
涓嶇煡澶у鏈夋病鏈夋敞鎰忓埌榪欎釜濂藉錛孲truts鏋舵瀯涓槸鐢變竴涓狝ctionServlet鏉ヤ綔涓篗VC鐨勬帶鍒跺櫒瑙掕壊錛宩sp欏甸潰鎻愪氦鍚巖equest鏄紶鍒癆ctionServelt涓殑錛?鑰孉ctionServlet灝嗘牴鎹畇truts-config.xml涓殑閰嶇疆璋冪敤鐩稿簲鐨凙ction鐨勬柟娉曪紝騫跺皢浠巎sp涓幏寰楃殑request浼犵粰Action綾伙紝榪欐牱request鐨勭敓鍛藉懆鏈熸槸榪炵畫鐨勶紝鍗充綘鍦╦sp涓彁浜や簡琛ㄥ崟錛屽湪Action涓墽琛屼簡鏂規硶錛屽啀鍥炲埌jsp欏甸潰錛岀敤request.getParamter()鍙杍sp欏甸潰鐨勮〃鍗曞厓绱犲間細鍙戠幇瀹冭繕鍦紝榪欏浜庨〉闈笅鎷夊垪琛ㄧ瓑閫夋嫨欏歸槻姝㈠浣嶆槸涓涓緢濂藉疄鐜版柟娉曘?/font>
5錛氫紶鍙傛椂鍙傛暟鏈夌┖鏍肩殑鎯呭喌
濡傛灉浣犳彁浜orm鏃跺甫鍙傛暟錛屾瘮濡俧orm1.action="/jsp/Action.do?param1="+value1,娉ㄦ剰濡傛灉value1涓甫鏈夌┖鏍肩殑璇濓紝浣犲湪
Action涓璻equest.getParameter("param1");
鍙栧緱鐨勫彧鏄┖鏍煎墠鐨勫鹼紝鍥犳濡傛灉鏈夎繖縐嶅甫絀烘牸鐨勫弬鏁板湪浼犻掓椂錛屼釜浜哄緩璁槸灝嗗叾杞寲涓虹壒瀹氱殑瀛楃涓詫紝value1=value1.replaceAll(" ","%NULL%");
鐒跺悗鍦ˋction涓皢鍏惰漿鍥炴潵錛歳equest.getParamter("param1").replaceAll("%NULL%"," ");
6錛歫sp涓紑妯″紡瀵硅瘽妗嗙殑鏂瑰紡
涓嶴wing涓被浼鹼紝jsp涓篃鏈夋ā寮忓璇濇榪欎竴姒傚康錛屼綘鍙互灝嗕竴涓猨sp欏甸潰鏀懼埌涓涓ā寮忓璇濇涓墦寮錛岃繖鏍峰湪妯″紡瀵硅瘽妗嗘秷澶卞墠錛屽師jsp欏甸潰灝嗕笉鍙搷浣溿傜壒鍒傚悎鐖墮〉闈腑瑕佸仛涓浜涢澶栫殑閫夋嫨鎿嶄綔錛岃屽張娌″繀瑕佽煩杞埌鏂扮殑jsp欏甸潰鐨勬椂鍊欙紝
寮妯″紡瀵硅瘽妗嗙殑鏂瑰紡鍙傝冨涓嬶細
Function open() {
If(window.showModelDialog())
{
Var returnValue = showModelDialog(“/jsp/妯″紡紿楀彛鍖呭惈鐨刯sp欏甸潰璺緞”;
help=0;status=0;center=yes;dialogWidth=100pt;dialogHeight=100pt”);
}
}
import javax.xml.rpc.encoding.XMLType;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestWebservice {
public String sendAjax(){
String result="";
String url="";
try{
//鍒涘緩涓涓湇鍔?br />
Service service=new Service();
//寤虹珛鏈嶅姟璋冪敤瀹炰緥
Call call=(Call)service.createCall();
url="http://localhost:8000/webService/services/TestService";
//璁懼畾璋冪敤璺緞
call.setTargetEndpointAddress(url);
//璁懼畾璋冪敤鏂規硶
call.setOperation("helloWord");
//璁懼畾榪斿洖綾誨瀷
call.setReturnType(XMLType.XSD_STRING);
//寮濮嬭皟鐢?/span>
result=(String)call.invoke(new Object[] {});
}catch(Exception e){
e.printStackTrace();
}
return result;
}
}
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class Hello extends TagSupport{
@Override
public int doStartTag() throws JspException {
//浠庨〉闈㈣幏鍙杛equest,寰楀埌欏甸潰鐨勫?br />
ServletRequest request = pageContext.getRequest();
String str="
//鍦╯ervlet涓墦鍗拌浣跨敤printWriter
//濡傛灉鍦ㄦ爣絳句腑鎵撳嵃闇瑕佷嬌鐢╬ageContext
JspWriter out=pageContext.getOut();
try{
out.print(str);
}catch(Exception e){
e.printStackTrace();
}
//鍙鎵撳嵃瀹屼簡瀛楃涓詫紝鍒欏悗闈㈢殑浠g爜灝變笉闇瑕佹墽琛屼簡
return TagSupport.SKIP_BODY;
}
}
tld鏂囦歡鐨勯厤緗細
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>hello</short-name>
<tag>
<name>mldn</name>
<tag-class>com.wyq.TagTest.Hello</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Example {
//寤虹珛涓涓潤鎬佺殑宸ュ満瀵硅薄
private static SessionFactory session_factory = null;
//寤虹珛涓涓瓨鍌ㄩ厤緗枃浠剁殑瀵硅薄--properties
private static Properties pops=new Properties();
//鍙栧緱閰嶇疆鏂囦歡璺緞,閰嶇疆鏂囦歡瀛樻斁鍦╟lass璺緞涓?/span>
private static String path=Example.class.getClassLoader().getResource("").getPath()+"hibernate.properties";
//寤虹珛涓涓潤鎬佹柟娉曪紝鐢ㄦ潵璇誨彇閰嶇疆鏂囦歡---hibernate.properties,鍦╯tatic闈欐佹柟娉曚腑鍙兘寮曠敤闈欐佸彉閲?br />
static{
try{
String s=path.substring(1,path.length());
//璇誨彇閰嶇疆鏂囦歡
InputStream stream= new FileInputStream(s);
//濡傛灉閰嶇疆鏂囦歡鍜岀被鏀懼湪鍚屼竴涓洰褰曚笅錛岃繖縐嶆儏鍐典笉寤鴻浣跨敤
InputStream streams=Example.class.getResourceAsStream("hibernate.properties");
//灝嗛厤緗枃浠跺瓨鍌ㄥ湪pops涓?/span>
pops.load(stream);
//寤虹珛閰嶇疆鏂囦歡綆$悊瀵硅薄
Configuration cfg=new Configuration();
//灝哖erson娣誨姞鍒癱fg涓紝綾諱技浜庡皢xxx.hbm.xml鍐欏湪hibernate.hbm.xml涓?br />
cfg.addClass(Person.class);
//灝唒ops娣誨姞鍒癱fg涓紝灝辨槸hiberante.hbm.xml
cfg.setProperties(pops);
//寤虹珛瀵硅薄宸ュ巶
session_factory=cfg.buildSessionFactory();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args)throws HibernateException{
Person person=new Person();
person.setName("wyq");
person.setEmail("hibernate.com.cn");
//鍙栧緱涓涓猻ession,鑾峰緱榪炴帴
Session session=session_factory.openSession();
//瀹氫箟涓涓簨鍔?/span>
Transaction tx=null;
try{
//寮鍚竴涓簨鍔?/span>
tx=session.beginTransaction();
//鍏蜂綋涓氬姟鎿嶄綔
session.save(person);
tx.commit();
}catch(HibernateException ex){
if(tx!=null){
tx.rollback();
}
}
finally{
session.close();
}
}
}
private java.util.Timer timer;
timer = new Timer(true);
timer.schedule(
new java.util.TimerTask() { public void run() { //server.checkNewMail(); 瑕佹搷浣滅殑鏂規硶 } }, 0, 5*60*1000);
絎竴涓弬鏁版槸瑕佹搷浣滅殑鏂規硶錛岀浜屼釜鍙傛暟鏄璁懼畾寤惰繜鐨勬椂闂達紝絎笁涓弬鏁版槸鍛ㄦ湡鐨勮瀹氾紝姣忛殧澶氶暱鏃墮棿鎵ц璇ユ搷浣溿?/p>
浣跨敤榪欏嚑琛屼唬鐮佷箣鍚庯紝Timer鏈韓浼氭瘡闅?鍒嗛挓璋冪敤涓閬峴erver.checkNewMail()鏂規硶錛屼笉闇瑕佽嚜宸卞惎鍔ㄧ嚎紼嬨俆imer鏈韓涔熸槸澶氱嚎紼嬪悓姝ョ殑錛屽涓嚎紼嬪彲浠ュ叡鐢ㄤ竴涓猅imer錛屼笉闇瑕佸閮ㄧ殑鍚屾浠g爜銆?
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.springframework.web.context.WebApplicationContext;
public class ReceiveJobd implements Job{
public void ReceiveJobd(){
}
//浣滀笟鍏蜂綋瀹炵幇鐨勫姛鑳?br />
public void execute(JobExecutionContext context) throws
JobExecutionException {
try {
//寤虹珛JobDataMap瀵硅薄錛岀敤鏉ユ帴鏀朵紶閫掔殑鍙傛暟
JobDataMap dataMap = context.getMergedJobDataMap();
int ipLength = dataMap.getInt("ipLength");
int tablenameLength = dataMap.getInt("tablenameLength");
WebApplicationContext wc=(WebApplicationContext)dataMap.get("wcx");
String ip = "";
String tablename = "";
for (int i = 0; i < ipLength; i++) {
ip = dataMap.getString("ip" + i);
for (int j = 0; j < tablenameLength; j++) {
tablename = dataMap.getString("tablename" + j);
ExchangeAccess ea=new ExchangeAccess(ip,tablename,wc);
//鍚姩綰跨▼
ea.start();
}
}
Scheduler scheduler = (Scheduler) dataMap.get("scheduler");
scheduler.deleteJob("ReceiveOnTimed", Scheduler.DEFAULT_GROUP);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}