锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 2.瀹夎Tomcat鍚庯紝鍦ㄦ垜鐨勭數鑴?>灞炴?>楂樼駭->鐜鍙橀噺->緋葷粺鍙橀噺涓坊鍔犱互涓嬬幆澧冨彉閲?BR>榪欓噷鎴戠殑瀹夎鐩綍鏄疕:\Tomcat 5.5錛屼互鎴戠殑涓轟緥璇?BR>CATALINA_HOME=H:\Tomcat 5.5; 2.鐢ㄤ綘鏈鐔熸?zhèn)夌殑缂栬緫鍣ㄥQ堝緩璁嬌鐢ㄦ湁璇硶媯鏌ョ殑java ide錛夋柊寤轟竴涓猻ervlet紼嬪簭錛屾枃浠跺悕涓篐elloWorld.java錛屾枃浠跺唴瀹瑰涓嬶細
(1)寤虹珛涓涓」鐩?BR> (2)寤虹珛灞炴?BR> (3)瀵規(guī)暟鎹簱鐨勬搷浣?BR> (4)javac緙栬瘧
(5)鍒犻櫎鐩綍
(6)寤虹珛鐩綍
(7)鎷瘋礉鏂囦歡緹?nbsp;
(8)jar涓轟竴涓寘
(9)鎷瘋礉鍗曚釜鏂囦歡
(10)榪愯
鏈夋洿澶氭洿濂界殑甯哥敤鐨?鎴戞病鎯沖埌鐨?甯屾湜澶у琛ュ厖銆?nbsp;
<!--(1)寤虹珛涓涓」鐩紝榛樿鐨勬搷浣滀負target=all. -->
<project name="proj" default="all" basedir=".">
<!--(2)寤虹珛涓浜涘睘鎬э紝浠ヤ緵涓嬭竟鐨勬搷浣滅敤鍒?nbsp;-->
<property name="root" value="./" />
<property name="deploy_path" value="d:/deploy" />
<property name="srcfile" value="d:/srcfile" />
<target name="all" depends="compile,deploy"/>
<!--(3)瀵規(guī)暟鎹簱鐨勬搷浣?nbsp;demo.ddl涓啓鐨勬槸sql璇彞 driver,url,userid,password
闅忓叿浣撴儏鍐佃緗?->
<!-- Oracle -->
<target name="db_setup_oracle" description="Database setup for Oracle
">
<antcall target="check_params_results"/>
<sql driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.0.1:1521:oa"
userid="oa" password="oa"
onerror="continue"
print="yes"
src="./demo.ddl"/>
</target>
<!--(4)javac緙栬瘧 -->
<target name="compile">
<javac srcdir="${srcfile}"
destdir="${root}/oa/"
includes="*.java"
classpath="${CLASSPATH};${CLIENT_CLASSES}/utils_common.jar" <!--CLASSPATH
鍜孋LIENT_CLASSES鏄幆澧冨彉閲?->
/>
</target>
<target name="deploy" depends="compile">
<!-- Create the time stamp -->
<tstamp/>
<!--(5)鍒犻櫎鐩綍-->
<!--(6)寤虹珛鐩綍-->
<delete dir="${root}/dist/"/>
<mkdir dir="${root}/dist/"/>
<delete dir="${deploy_path}"/>
<mkdir dir="${deploy_path}"/>
<!--(7)鎷瘋礉鏂囦歡緹?->
<copy todir="${root}/dist/">
<fileset dir="${root}/oa/">
<include name="*.class"/>
</fileset>
</copy>
<!--(8)jar涓轟竴涓寘-->
<jar jarfile="${deploy_path}/classjar.jar" basedir="${root}/dist" update
="yes"></jar>
<!--(9)鎷瘋礉鍗曚釜鏂囦歡(涓婅竟鏄枃浠剁兢,榪欐槸鍗曚釜鏂囦歡)-->
<copy file="${deploy_path}/classjar.jar" todir="${root}/dist/"/>
</target>
<!--(10)榪愯(args涓槸鍙傛暟,闅忓簲鐢ㄧ▼搴忕殑鍏蜂綋鎯呭喌鏈夋墍涓嶅悓)->
<target name="simplesql" depends="compile,db_setup_oracle">
<java classname="examples.jdbc.oracle.simplesql"
fork="yes" failonerror="yes"
args="-user zrb
-password zrb
"/>
</project>
]]>
銆銆2. 鏍堢殑浼樺娍鏄紝瀛樺彇閫熷害姣斿爢瑕佸揩錛屼粎嬈′簬鐩存帴浣嶄簬CPU涓殑瀵勫瓨鍣ㄣ備絾緙虹偣鏄?BR>錛屽瓨鍦ㄦ爤涓殑鏁版嵁澶у皬涓庣敓瀛樻湡蹇呴』鏄‘瀹氱殑錛岀己涔忕伒媧繪с傚彟澶栵紝鏍堟暟鎹彲浠ュ叡浜?BR>錛岃瑙佺3鐐廣傚爢鐨勪紭鍔挎槸鍙互鍔ㄦ佸湴鍒嗛厤鍐呭瓨澶у皬錛岀敓瀛樻湡涔熶笉蹇呬簨鍏堝憡璇夌紪璇戝櫒
錛孞ava鐨勫瀮鍦炬敹闆嗗櫒浼氳嚜鍔ㄦ敹璧拌繖浜涗笉鍐嶄嬌鐢ㄧ殑鏁版嵁銆備絾緙虹偣鏄紝鐢變簬瑕佸湪榪愯鏃跺姩
鎬佸垎閰嶅唴瀛橈紝瀛樺彇閫熷害杈冩參銆?BR>
銆銆3. Java涓殑鏁版嵁綾誨瀷鏈変袱縐嶃?BR>
銆銆涓縐嶆槸鍩烘湰綾誨瀷(primitive types), 鍏辨湁8縐嶏紝鍗砳nt, short, long, byte, float
, double, boolean, char(娉ㄦ剰錛屽茍娌℃湁string鐨勫熀鏈被鍨?銆傝繖縐嶇被鍨嬬殑瀹氫箟鏄?BR>榪囪濡俰nt a = 3; long b = 255L;鐨勫艦寮忔潵瀹氫箟鐨勶紝縐頒負鑷姩鍙橀噺銆傚煎緱娉ㄦ剰鐨勬槸
錛岃嚜鍔ㄥ彉閲忓瓨鐨勬槸瀛楅潰鍊鹼紝涓嶆槸綾葷殑瀹炰緥錛屽嵆涓嶆槸綾葷殑寮曠敤錛岃繖閲屽茍娌℃湁綾葷殑瀛樺湪銆?BR>濡俰nt a = 3; 榪欓噷鐨刟鏄竴涓寚鍚慽nt綾誨瀷鐨勫紩鐢紝鎸囧悜3榪欎釜瀛楅潰鍊箋傝繖浜涘瓧闈㈠肩殑
鏁版嵁錛岀敱浜庡ぇ灝忓彲鐭ワ紝鐢熷瓨鏈熷彲鐭?榪欎簺瀛楅潰鍊煎浐瀹氬畾涔夊湪鏌愪釜紼嬪簭鍧楅噷闈紝紼嬪簭鍧?BR>閫鍑哄悗錛屽瓧孌靛煎氨娑堝け浜?錛屽嚭浜庤拷姹傞熷害鐨勫師鍥狅紝灝卞瓨鍦ㄤ簬鏍堜腑銆?BR>
銆銆鍙﹀錛屾爤鏈変竴涓緢閲嶈鐨勭壒孌婃э紝灝辨槸瀛樺湪鏍堜腑鐨勬暟鎹彲浠ュ叡浜傚亣璁炬垜浠悓鏃?BR>瀹氫箟錛?BR>
int a = 3;
int b = 3錛?nbsp;
銆銆緙栬瘧鍣ㄥ厛澶勭悊int a = 3錛涢鍏堝畠浼氬湪鏍堜腑鍒涘緩涓涓彉閲忎負a鐨勫紩鐢紝鐒跺悗鏌ユ壘鏈?BR>娌℃湁瀛楅潰鍊間負3鐨勫湴鍧錛屾病鎵懼埌錛屽氨寮杈熶竴涓瓨鏀?榪欎釜瀛楅潰鍊肩殑鍦板潃錛岀劧鍚庡皢a鎸囧悜
3鐨勫湴鍧銆傛帴鐫澶勭悊int b = 3錛涘湪鍒涘緩瀹宐鐨勫紩鐢ㄥ彉閲忓悗錛岀敱浜庡湪鏍堜腑宸茬粡鏈?榪欎釜瀛?BR>闈㈠鹼紝渚垮皢b鐩存帴鎸囧悜3鐨勫湴鍧銆傝繖鏍鳳紝灝卞嚭鐜頒簡a涓巄鍚屾椂鍧囨寚鍚?鐨勬儏鍐點?BR>
銆銆鐗瑰埆娉ㄦ剰鐨勬槸錛岃繖縐嶅瓧闈㈠肩殑寮曠敤涓庣被瀵硅薄鐨勫紩鐢ㄤ笉鍚屻傚亣瀹氫袱涓被瀵硅薄鐨勫紩鐢?BR>鍚屾椂鎸囧悜涓涓璞★紝濡傛灉涓涓璞″紩鐢ㄥ彉閲忎慨鏀逛簡榪欎釜瀵硅薄鐨勫唴閮ㄧ姸鎬侊紝閭d箞鍙︿竴涓?BR>瀵硅薄寮曠敤鍙橀噺涔熷嵆鍒誨弽鏄犲嚭榪欎釜鍙樺寲銆傜浉鍙嶏紝閫氳繃瀛楅潰鍊肩殑寮曠敤鏉ヤ慨鏀瑰叾鍊鹼紝涓嶄細瀵?BR>鑷村彟涓涓寚鍚戞瀛楅潰鍊肩殑寮曠敤鐨勫間篃璺熺潃鏀瑰彉鐨勬儏鍐點傚涓婁緥錛屾垜浠畾涔夊畬a涓巄鐨勫?BR>鍚庯紝鍐嶄護a=4錛涢偅涔堬紝b涓嶄細絳変簬4錛岃繕鏄瓑浜?銆傚湪緙栬瘧鍣ㄥ唴閮紝閬囧埌a=4錛涙椂錛屽畠?yōu)?BR>浼氶噸鏂版悳绱㈡爤涓槸鍚︽湁4鐨勫瓧闈㈠鹼紝濡傛灉娌℃湁錛岄噸鏂板紑杈熷湴鍧瀛樻斁4鐨勫鹼紱濡傛灉宸茬粡鏈?BR>浜嗭紝鍒欑洿鎺ュ皢a鎸囧悜榪欎釜鍦板潃銆傚洜姝鍊肩殑鏀瑰彉涓嶄細褰卞搷鍒癰鐨勫箋?BR>
銆銆鍙︿竴縐嶆槸鍖呰綾繪暟鎹紝濡侷nteger, String, Double絳夊皢鐩稿簲鐨勫熀鏈暟鎹被鍨嬪寘
瑁呰搗鏉ョ殑綾匯傝繖浜涚被鏁版嵁鍏ㄩ儴瀛樺湪浜庡爢涓紝Java鐢╪ew()璇彞鏉ユ樉紺哄湴鍛婅瘔緙栬瘧鍣紝
鍦ㄨ繍琛屾椂鎵嶆牴鎹渶瑕佸姩鎬佸垱寤猴紝鍥犳姣旇緝鐏墊椿錛屼絾緙虹偣鏄鍗犵敤鏇村鐨勬椂闂淬?nbsp;4. String
鏄竴涓壒孌婄殑鍖呰綾繪暟鎹傚嵆鍙互鐢⊿tring str = new String("abc");鐨勫艦寮忔潵鍒?BR>寤猴紝涔熷彲浠ョ敤String str = "abc"錛涚殑褰㈠紡鏉ュ垱寤?浣滀負瀵規(guī)瘮錛屽湪JDK 5.0涔嬪墠錛屼綘浠?BR>鏈榪嘔nteger i = 3;鐨勮〃杈懼紡錛屽洜涓虹被涓庡瓧闈㈠兼槸涓嶈兘閫氱敤鐨勶紝闄や簡String銆傝屽湪
JDK 5.0涓紝榪欑琛ㄨ揪寮忔槸鍙互鐨勶紒鍥犱負緙栬瘧鍣ㄥ湪鍚庡彴榪涜Integer i = new Integer
(3)鐨勮漿鎹?銆傚墠鑰呮槸瑙勮寖鐨勭被鐨勫垱寤鴻繃紼嬶紝鍗沖湪Java涓紝涓鍒囬兘鏄璞★紝鑰屽璞℃槸綾?BR>鐨勫疄渚嬶紝鍏ㄩ儴閫氳繃new()鐨勫艦寮忔潵鍒涘緩銆侸ava涓殑鏈変簺綾伙紝濡侱ateFormat綾伙紝鍙互閫?BR>榪囪綾葷殑getInstance()鏂規(guī)硶鏉ヨ繑鍥炰竴涓柊鍒涘緩鐨勭被錛屼技涔庤繚鍙嶄簡姝ゅ師鍒欍傚叾瀹炰笉鐒?BR>銆傝綾昏繍鐢ㄤ簡鍗曚緥妯″紡鏉ヨ繑鍥炵被鐨勫疄渚嬶紝鍙笉榪囪繖涓疄渚嬫槸鍦ㄨ綾誨唴閮ㄩ氳繃new()鏉?BR>鍒涘緩鐨勶紝鑰実etInstance()鍚戝閮ㄩ殣钘忎簡姝ょ粏鑺傘傞偅涓轟粈涔堝湪String str = "abc"錛?BR>涓紝騫舵病鏈夐氳繃new()鏉ュ垱寤哄疄渚嬶紝鏄笉鏄繚鍙嶄簡涓婅堪鍘熷垯錛熷叾瀹炴病鏈夈?BR>
銆銆5. 鍏充簬String str = "abc"鐨勫唴閮ㄥ伐浣溿侸ava鍐呴儴灝嗘璇彞杞寲涓轟互涓嬪嚑涓
楠わ細
銆銆(1)鍏堝畾涔変竴涓悕涓簊tr鐨勫String綾葷殑瀵硅薄寮曠敤鍙橀噺錛歋tring str錛?BR>
銆銆(2)鍦ㄦ爤涓煡鎵炬湁娌℃湁瀛樻斁鍊間負"abc"鐨勫湴鍧錛屽鏋滄病鏈夛紝鍒欏紑杈熶竴涓瓨鏀懼瓧闈㈠?BR>涓?abc"鐨勫湴鍧錛屾帴鐫鍒涘緩涓涓柊鐨凷tring綾葷殑瀵硅薄o錛屽茍灝唎鐨勫瓧絎︿覆鍊兼寚鍚戣繖涓湴
鍧錛岃屼笖鍦ㄦ爤涓繖涓湴鍧鏃佽竟璁頒笅榪欎釜寮曠敤鐨勫璞銆傚鏋滃凡緇忔湁浜嗗間負"abc"鐨勫湴鍧
錛屽垯鏌ユ壘瀵硅薄o錛屽茍榪斿洖o鐨勫湴鍧銆?BR>
銆銆(3)灝唖tr鎸囧悜瀵硅薄o鐨勫湴鍧銆?BR>
銆銆鍊煎緱娉ㄦ剰鐨勬槸錛屼竴鑸琒tring綾諱腑瀛楃涓插奸兘鏄洿鎺ュ瓨鍊肩殑銆備絾鍍廠tring str =
"abc"錛涜繖縐嶅満鍚堜笅錛屽叾瀛楃涓插煎嵈鏄繚瀛樹簡涓涓寚鍚戝瓨鍦ㄦ爤涓暟鎹殑寮曠敤錛?BR>
銆銆涓轟簡鏇村ソ鍦拌鏄庤繖涓棶棰橈紝鎴戜滑鍙互閫氳繃浠ヤ笅鐨勫嚑涓唬鐮佽繘琛岄獙璇併?BR>
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2); //true
銆銆娉ㄦ剰錛屾垜浠繖閲屽茍涓嶇敤str1.equals(str2)錛涚殑鏂瑰紡錛屽洜涓鴻繖灝嗘瘮杈冧袱涓瓧絎︿覆
鐨勫兼槸鍚︾浉絳夈?=鍙鳳紝鏍規(guī)嵁JDK鐨勮鏄庯紝鍙湁鍦ㄤ袱涓紩鐢ㄩ兘鎸囧悜浜嗗悓涓涓璞℃椂鎵嶈繑
鍥炵湡鍊箋傝屾垜浠湪榪欓噷瑕佺湅鐨勬槸錛宻tr1涓巗tr2鏄惁閮芥寚鍚戜簡鍚屼竴涓璞°?BR>緇撴灉璇存槑錛孞VM鍒涘緩浜嗕袱涓紩鐢╯tr1鍜宻tr2錛屼絾鍙垱寤轟簡涓涓璞★紝鑰屼笖涓や釜寮曠敤閮?BR>鎸囧悜浜嗚繖涓璞°?BR>
銆銆鎴戜滑鍐嶆潵鏇磋繘涓姝ワ紝灝嗕互涓婁唬鐮佹敼鎴愶細
String str1 = "abc";
String str2 = "abc";
str1 = "bcd";
System.out.println(str1 + "," + str2); //bcd, abc
System.out.println(str1==str2); //false
銆銆榪欏氨鏄錛岃祴鍊肩殑鍙樺寲瀵艱嚧浜嗙被瀵硅薄寮曠敤鐨勫彉鍖栵紝str1鎸囧悜浜嗗彟澶栦竴涓柊瀵硅薄錛?BR>鑰宻tr2浠嶆棫鎸囧悜鍘熸潵鐨勫璞°備笂渚嬩腑錛屽綋鎴戜滑灝唖tr1鐨勫兼敼涓?bcd"鏃訛紝JVM鍙戠幇鍦ㄦ爤
涓病鏈夊瓨鏀捐鍊肩殑鍦板潃錛屼究寮杈熶簡榪欎釜鍦板潃錛屽茍鍒涘緩浜嗕竴涓柊鐨勫璞★紝鍏跺瓧絎︿覆鐨勫?BR>鎸囧悜榪欎釜鍦板潃銆?BR>
銆銆浜嬪疄涓婏紝String綾昏璁捐鎴愪負涓嶅彲鏀瑰彉(immutable)鐨勭被銆傚鏋滀綘瑕佹敼鍙樺叾鍊鹼紝
鍙互錛屼絾JVM鍦ㄨ繍琛屾椂鏍規(guī)嵁鏂板兼?zhèn)勬?zhèn)勫垱寤轟簡涓涓柊瀵硅薄錛岀劧鍚庡皢榪欎釜瀵硅薄鐨勫湴鍧榪斿洖
緇欏師鏉ョ被鐨勫紩鐢ㄣ傝繖涓垱寤鴻繃紼嬭櫧璇存槸瀹屽叏鑷姩榪涜鐨勶紝浣嗗畠姣曠珶鍗犵敤浜嗘洿澶氱殑鏃墮棿
銆傚湪瀵規(guī)椂闂磋姹傛瘮杈冩晱鎰熺殑鐜涓紝浼氬甫鏈変竴瀹氱殑涓嶈壇褰卞搷銆?BR>
銆銆鍐嶄慨鏀瑰師鏉ヤ唬鐮侊細
String str1 = "abc";
String str2 = "abc";
str1 = "bcd";
String str3 = str1;
System.out.println(str3); //bcd
String str4 = "bcd";
System.out.println(str1 == str4); //true
銆銆str3榪欎釜瀵硅薄鐨勫紩鐢ㄧ洿鎺ユ寚鍚憇tr1鎵鎸囧悜鐨勫璞?娉ㄦ剰錛宻tr3騫舵病鏈夊垱寤烘柊瀵硅薄
)銆傚綋str1鏀瑰畬鍏跺煎悗錛屽啀鍒涘緩涓涓猄tring鐨勫紩鐢╯tr4錛屽茍鎸囧悜鍥爏tr1淇敼鍊艱屽垱寤?BR>鐨勬柊鐨勫璞°傚彲浠ュ彂鐜幫紝榪欏洖str4涔熸病鏈夊垱寤烘柊鐨勫璞★紝浠庤屽啀嬈″疄鐜版爤涓暟鎹殑鍏?BR>浜?BR>
銆銆鎴戜滑鍐嶆帴鐫鐪嬩互涓嬬殑浠g爜銆?BR>
String str1 = new String("abc");
String str2 = "abc";
System.out.println(str1==str2); //false
銆銆鍒涘緩浜嗕袱涓紩鐢ㄣ傚垱寤轟簡涓や釜瀵硅薄銆備袱涓紩鐢ㄥ垎鍒寚鍚戜笉鍚岀殑涓や釜瀵硅薄銆?BR>
String str1 = "abc";
String str2 = new String("abc");
System.out.println(str1==str2); //false
銆銆鍒涘緩浜嗕袱涓紩鐢ㄣ傚垱寤轟簡涓や釜瀵硅薄銆備袱涓紩鐢ㄥ垎鍒寚鍚戜笉鍚岀殑涓や釜瀵硅薄銆?BR>
銆銆浠ヤ笂涓ゆ浠g爜璇存槑錛屽彧瑕佹槸鐢╪ew()鏉ユ柊寤哄璞$殑錛岄兘浼氬湪鍫嗕腑鍒涘緩錛岃屼笖鍏跺瓧
絎︿覆鏄崟鐙瓨鍊肩殑錛屽嵆浣夸笌鏍堜腑鐨勬暟鎹浉鍚岋紝涔熶笉浼氫笌鏍堜腑鐨勬暟鎹叡浜?BR>
銆銆6. 鏁版嵁綾誨瀷鍖呰綾葷殑鍊間笉鍙慨鏀廣備笉浠呬粎鏄疭tring綾葷殑鍊間笉鍙慨鏀癸紝鎵鏈夌殑鏁?BR>鎹被鍨嬪寘瑁呯被閮戒笉鑳芥洿鏀瑰叾鍐呴儴鐨勫箋?nbsp;7. 緇撹涓庡緩璁細
銆銆(1)鎴戜滑鍦ㄤ嬌鐢ㄨ濡係tring str = "abc"錛涚殑鏍煎紡瀹氫箟綾繪椂錛屾繪槸鎯沖綋鐒跺湴璁や負
錛屾垜浠垱寤轟簡String綾葷殑瀵硅薄str銆傛媴蹇冮櫡闃憋紒瀵硅薄鍙兘騫舵病鏈夎鍒涘緩錛佸敮涓鍙互鑲?BR>瀹氱殑鏄紝鎸囧悜String綾葷殑寮曠敤琚垱寤轟簡銆傝嚦浜庤繖涓紩鐢ㄥ埌搴曟槸鍚︽寚鍚戜簡涓涓柊鐨勫璞?BR>錛屽繀欏繪牴鎹笂涓嬫枃鏉ヨ冭檻錛岄櫎闈炰綘閫氳繃new()鏂規(guī)硶鏉ユ樉瑕佸湴鍒涘緩涓涓柊鐨勫璞°傚洜姝?BR>錛屾洿涓哄噯紜殑璇存硶鏄紝鎴戜滑鍒涘緩浜嗕竴涓寚鍚慡tring綾葷殑瀵硅薄鐨勫紩鐢ㄥ彉閲弒tr錛岃繖涓
璞″紩鐢ㄥ彉閲忔寚鍚戜簡鏌愪釜鍊間負"abc"鐨凷tring綾匯傛竻閱掑湴璁よ瘑鍒拌繖涓鐐瑰鎺掗櫎紼嬪簭涓毦
浠ュ彂鐜扮殑bug鏄緢鏈夊府鍔╃殑銆?BR>
銆銆(2)浣跨敤String str = "abc"錛涚殑鏂瑰紡錛屽彲浠ュ湪涓瀹氱▼搴︿笂鎻愰珮紼嬪簭鐨勮繍琛岄熷害
錛屽洜涓篔VM浼氳嚜鍔ㄦ牴鎹爤涓暟鎹殑瀹為檯鎯呭喌鏉ュ喅瀹氭槸鍚︽湁蹇呰鍒涘緩鏂板璞°傝屽浜嶴tring
str = new String("abc")錛涚殑浠g爜錛屽垯涓姒傚湪鍫嗕腑鍒涘緩鏂板璞★紝鑰屼笉綆″叾瀛楃涓插?BR>鏄惁鐩哥瓑錛屾槸鍚︽湁蹇呰鍒涘緩鏂板璞★紝浠庤屽姞閲嶄簡紼嬪簭鐨勮礋鎷呫傝繖涓濇兂搴旇鏄韓鍏冩ā
寮忕殑鎬濇兂錛屼絾JDK鐨勫唴閮ㄥ湪榪欓噷瀹炵幇鏄惁搴旂敤浜嗚繖涓ā寮忥紝涓嶅緱鑰岀煡銆?BR>
銆銆(3)褰撴瘮杈冨寘瑁呯被閲岄潰鐨勬暟鍊兼槸鍚︾浉絳夋椂錛岀敤equals()鏂規(guī)硶錛涘綋嫻嬭瘯涓や釜鍖呰綾?BR>鐨勫紩鐢ㄦ槸鍚︽寚鍚戝悓涓涓璞℃椂錛岀敤==銆?BR>
銆銆(4)鐢變簬String綾葷殑immutable鎬ц川錛屽綋String鍙橀噺闇瑕佺粡甯稿彉鎹㈠叾鍊兼椂錛屽簲璇ヨ?BR>铏戜嬌鐢⊿tringBuffer綾伙紝浠ユ彁楂樼▼搴忔晥鐜囥?BR>
]]>
1. stream浠h〃鐨勬槸浠諱綍鏈夎兘鍔涗駭鍑烘暟鎹殑鏁版嵁婧愶紝鎴栨槸浠諱綍鏈夎兘鍔涙帴鏀舵暟鎹殑鎺ユ敹
婧愩傚湪Java鐨処O涓紝鎵鏈夌殑stream錛堝寘鎷琁nput鍜孫ut stream錛夐兘鍖呮嫭涓ょ綾誨瀷錛?BR>1.1 浠ュ瓧鑺備負瀵煎悜鐨剆tream
浠ュ瓧鑺備負瀵煎悜鐨剆tream錛岃〃紺轟互瀛楄妭涓哄崟浣嶄粠stream涓鍙栨垨寰stream涓啓鍏ヤ俊鎭?BR>浠ュ瓧鑺備負瀵煎悜鐨剆tream鍖呮嫭涓嬮潰鍑犵綾誨瀷錛?BR>1) input銆stream錛?BR>1) ByteArrayInputStream錛氭妸鍐呭瓨涓殑涓涓紦鍐插尯浣滀負InputStream浣跨敤
2) StringBufferInputStream錛氭妸涓涓猄tring瀵硅薄浣滀負InputStream
3) FileInputStream錛氭妸涓涓枃浠朵綔涓篒nputStream錛屽疄鐜板鏂囦歡鐨勮鍙栨搷浣?BR>4) PipedInputStream錛氬疄鐜頒簡pipe鐨勬蹇碉紝涓昏鍦ㄧ嚎紼嬩腑浣跨敤
5) SequenceInputStream錛氭妸澶氫釜InputStream鍚堝茍涓轟竴涓狪nputStream
2) Out銆stream
1) ByteArrayOutputStream錛氭妸淇℃伅瀛樺叆鍐呭瓨涓殑涓涓紦鍐插尯涓?BR>2) FileOutputStream錛氭妸淇℃伅瀛樺叆鏂囦歡涓?BR>3) PipedOutputStream錛氬疄鐜頒簡pipe鐨勬蹇碉紝涓昏鍦ㄧ嚎紼嬩腑浣跨敤
4) SequenceOutputStream錛氭妸澶氫釜OutStream鍚堝茍涓轟竴涓狾utStream
1.2 浠nicode瀛楃涓哄鍚戠殑stream
浠nicode瀛楃涓哄鍚戠殑stream錛岃〃紺轟互Unicode瀛楃涓哄崟浣嶄粠stream涓鍙栨垨寰stream
涓啓鍏ヤ俊鎭備互Unicode瀛楃涓哄鍚戠殑stream鍖呮嫭涓嬮潰鍑犵綾誨瀷錛?BR>1) Input銆Stream
1) CharArrayReader錛氫笌ByteArrayInputStream瀵瑰簲
2) StringReader錛氫笌StringBufferInputStream瀵瑰簲
3) FileReader錛氫笌FileInputStream瀵瑰簲
4) PipedReader錛氫笌PipedInputStream瀵瑰簲
2) Out銆Stream
1) CharArrayWrite錛氫笌ByteArrayOutputStream瀵瑰簲
2) StringWrite錛氭棤涓庝箣瀵瑰簲鐨勪互瀛楄妭涓哄鍚戠殑stream
3) FileWrite錛氫笌FileOutputStream瀵瑰簲
4) PipedWrite錛氫笌PipedOutputStream瀵瑰簲
浠ュ瓧絎︿負瀵煎悜鐨剆tream鍩烘湰涓婂鏈変笌涔嬬浉瀵瑰簲鐨勪互瀛楄妭涓哄鍚戠殑stream銆備袱涓搴旂被
瀹炵幇鐨勫姛鑳界浉鍚岋紝瀛楁槸鍦ㄦ搷浣滄椂鐨勫鍚戜笉鍚屻傚CharArrayReader錛氬拰ByteArrayInputStream
鐨勪綔鐢ㄩ兘鏄妸鍐呭瓨涓殑涓涓紦鍐插尯浣滀負InputStream浣跨敤錛屾墍涓嶅悓鐨勬槸鍓嶈呮瘡嬈′粠鍐?BR>瀛樹腑璇誨彇涓涓瓧鑺傜殑淇℃伅錛岃屽悗鑰呮瘡嬈′粠鍐呭瓨涓鍙栦竴涓瓧絎︺?BR>1.3 涓ょ涓嶇幇瀵煎悜鐨剆tream涔嬮棿鐨勮漿鎹?BR>InputStreamReader鍜孫utputStreamReader錛氭妸涓涓互瀛楄妭涓哄鍚戠殑stream杞崲鎴愪竴
涓互瀛楃涓哄鍚戠殑stream銆?BR>2. stream娣誨姞灞炴?BR>2.1 鈥滀負stream娣誨姞灞炴р濈殑浣滅敤
榪愮敤涓婇潰浠嬬粛鐨凧ava涓搷浣淚O鐨凙PI錛屾垜浠氨鍙畬鎴愭垜浠兂瀹屾垚鐨勪換浣曟搷浣滀簡銆備絾閫?BR>榪嘑ilterInputStream鍜孎ilterOutStream鐨勫瓙綾伙紝鎴戜滑鍙互涓簊tream娣誨姞灞炴с備笅闈?BR>浠ヤ竴涓緥瀛愭潵璇存槑榪欑鍔熻兘鐨勪綔鐢ㄣ?BR>濡傛灉鎴戜滑瑕佸線涓涓枃浠朵腑鍐欏叆鏁版嵁錛屾垜浠彲浠ヨ繖鏍鋒搷浣滐細
FileOutStream fs = new FileOutStream(鈥渢est.txt鈥?;
鐒跺悗灝卞彲浠ラ氳繃浜х敓鐨刦s瀵硅薄璋冪敤write()鍑芥暟鏉ュ線test.txt鏂囦歡涓啓鍏ユ暟鎹簡銆備絾
鏄紝濡傛灉鎴戜滑鎯沖疄鐜扳滃厛鎶婅鍐欏叆鏂囦歡鐨勬暟鎹厛緙撳瓨鍒板唴瀛樹腑錛屽啀鎶婄紦瀛樹腑鐨勬暟鎹啓
鍏ユ枃浠朵腑鈥濈殑鍔熻兘鏃訛紝涓婇潰鐨凙PI灝辨病鏈変竴涓兘婊¤凍鎴戜滑鐨勯渶姹備簡銆備絾鏄氳繃FilterInputStream
鍜孎ilterOutStream鐨勫瓙綾伙紝涓篎ileOutStream娣誨姞鎴戜滑鎵闇瑕佺殑鍔熻兘銆?BR>2.2 FilterInputStream鐨勫悇縐嶇被鍨?BR>2.2.1 鐢ㄤ簬灝佽浠ュ瓧鑺備負瀵煎悜鐨処nputStream
1) DataInputStream錛氫粠stream涓鍙栧熀鏈被鍨嬶紙int銆乧har絳夛級鏁版嵁銆?BR>2) BufferedInputStream錛氫嬌鐢ㄧ紦鍐插尯
3) LineNumberInputStream錛氫細璁板綍input stream鍐呯殑琛屾暟錛岀劧鍚庡彲浠ヨ皟鐢╣etLineNumber
()鍜宻etLineNumber(int)
4) PushbackInputStream錛氬緢灝戠敤鍒幫紝涓鑸敤浜庣紪璇戝櫒寮鍙?BR>2.2.2 鐢ㄤ簬灝佽浠ュ瓧絎︿負瀵煎悜鐨処nputStream
1) 娌℃湁涓嶥ataInputStream瀵瑰簲鐨勭被銆傞櫎闈炲湪瑕佷嬌鐢╮eadLine()鏃舵敼鐢˙ufferedReader
錛屽惁鍒欎嬌鐢―ataInputStream
2) BufferedReader錛氫笌BufferedInputStream瀵瑰簲
3) LineNumberReader錛氫笌LineNumberInputStream瀵瑰簲
4) PushBackReader錛氫笌PushbackInputStream瀵瑰簲
2.3 FilterOutStream鐨勫悇縐嶇被鍨?BR>2.2.3 鐢ㄤ簬灝佽浠ュ瓧鑺備負瀵煎悜鐨凮utputStream
1) DataIOutStream錛氬線stream涓緭鍑哄熀鏈被鍨嬶紙int銆乧har絳夛級鏁版嵁銆?BR>2) BufferedOutStream錛氫嬌鐢ㄧ紦鍐插尯
3) PrintStream錛氫駭鐢熸牸寮忓寲杈撳嚭
2.2.4 鐢ㄤ簬灝佽浠ュ瓧絎︿負瀵煎悜鐨凮utputStream
1) BufferedWrite錛氫笌瀵瑰簲
2) PrintWrite錛氫笌瀵瑰簲
3. RandomAccessFile
1) 鍙氳繃RandomAccessFile瀵硅薄瀹屾垚瀵規(guī)枃浠剁殑璇誨啓鎿嶄綔
2) 鍦ㄤ駭鐢熶竴涓璞℃椂錛屽彲鎸囨槑瑕佹墦寮鐨勬枃浠剁殑鎬ц川錛歳錛屽彧璇伙紱w錛屽彧鍐欙紱rw鍙鍐?BR>
3) 鍙互鐩存帴璺沖埌鏂囦歡涓寚瀹氱殑浣嶇疆
4. I/O搴旂敤鐨勪竴涓緥瀛?BR>import java.io.*;
public class TestIO{
public static void main(String[] args)
throws IOException{
//1.浠ヨ涓哄崟浣嶄粠涓涓枃浠惰鍙栨暟鎹?BR>BufferedReader in =
new BufferedReader(
new FileReader("F:nepalonTestIO.java"));
String s, s2 = new String();
while((s = in.readLine()) != null)
s2 += s + "n";
in.close();
//1b. 鎺ユ敹閿洏鐨勮緭鍏?BR>BufferedReader stdin =
new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter a line:");
System.out.println(stdin.readLine());
//2. 浠庝竴涓猄tring瀵硅薄涓鍙栨暟鎹?BR>StringReader in2 = new StringReader(s2);
int c;
while((c = in2.read()) != -1)
System.out.println((char)c);
in2.close();
//3. 浠庡唴瀛樺彇鍑烘牸寮忓寲杈撳叆
try{
DataInputStream in3 =
new DataInputStream(
new ByteArrayInputStream(s2.getBytes()));
while(true)
System.out.println((char)in3.readByte());
}
catch(EOFException e){
System.out.println("End of stream");
}
//4. 杈撳嚭鍒版枃浠?BR>try{
BufferedReader in4 =
new BufferedReader(
new StringReader(s2));
PrintWriter out1 =
new PrintWriter(
new BufferedWriter(
new FileWriter("F:nepalon TestIO.out")));
int lineCount = 1;
while((s = in4.readLine()) != null)
out1.println(lineCount++ + "錛? + s);
out1.close();
in4.close();
}
catch(EOFException ex){
System.out.println("End of stream");
}
//5. 鏁版嵁鐨勫瓨鍌ㄥ拰鎭㈠
try{
DataOutputStream out2 =
new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("F:nepalon Data.txt")));
out2.writeDouble(3.1415926);
out2.writeChars("nThas was pi:writeCharsn");
out2.writeBytes("Thas was pi:writeByten");
out2.close();
DataInputStream in5 =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("F:nepalon Data.txt")));
BufferedReader in5br =
new BufferedReader(
new InputStreamReader(in5));
System.out.println(in5.readDouble());
System.out.println(in5br.readLine());
System.out.println(in5br.readLine());
}
catch(EOFException e){
System.out.println("End of stream");
}
//6. 閫氳繃RandomAccessFile鎿嶄綔鏂囦歡
RandomAccessFile rf =
new RandomAccessFile("F:nepalon rtest.dat", "rw");
for(int i=0; i<10; i++)
rf.writeDouble(i*1.414);
rf.close();
rf = new RandomAccessFile("F:nepalon rtest.dat", "r");
for(int i=0; i<10; i++)
System.out.println("Value " + i + "錛? + rf.readDouble());
rf.close();
rf = new RandomAccessFile("F:nepalon rtest.dat", "rw");
rf.seek(5*8);
rf.writeDouble(47.0001);
rf.close();
rf = new RandomAccessFile("F:nepalon rtest.dat", "r");
for(int i=0; i<10; i++)
System.out.println("Value " + i + "錛? + rf.readDouble());
rf.close();
}
}
鍏充簬浠g爜鐨勮В閲婏紙浠ュ尯涓哄崟浣嶏級錛?BR>1鍖轟腑錛屽綋璇誨彇鏂囦歡鏃訛紝鍏堟妸鏂囦歡鍐呭璇誨埌緙撳瓨涓紝褰撹皟鐢╥n.readLine()鏃訛紝鍐嶄粠緙?BR>瀛樹腑浠ュ瓧絎︾殑鏂瑰紡璇誨彇鏁版嵁錛堜互涓嬬畝縐扳滅紦瀛樺瓧鑺傝鍙栨柟寮忊濓級銆?BR>1b鍖轟腑錛岀敱浜庢兂浠ョ紦瀛樺瓧鑺傝鍙栨柟寮忎粠鏍囧噯IO錛堥敭鐩橈級涓鍙栨暟鎹紝鎵浠ヨ鍏堟妸鏍囧噯
IO錛圫ystem.in錛夎漿鎹㈡垚瀛楃瀵煎悜鐨剆tream錛屽啀榪涜BufferedReader灝佽銆?BR>2鍖轟腑錛岃浠ュ瓧絎︾殑褰㈠紡浠庝竴涓猄tring瀵硅薄涓鍙栨暟鎹紝鎵浠ヨ浜х敓涓涓猄tringReader
綾誨瀷鐨剆tream銆?BR>4鍖轟腑錛屽String瀵硅薄s2璇誨彇鏁版嵁鏃訛紝鍏堟妸瀵硅薄涓殑鏁版嵁瀛樺叆緙撳瓨涓紝鍐嶄粠緙撳啿涓繘
琛岃鍙栵紱瀵筎estIO.out鏂囦歡榪涜鎿嶄綔鏃訛紝鍏堟妸鏍煎紡鍖栧悗鐨勪俊鎭緭鍑哄埌緙撳瓨涓紝鍐嶆妸緙?BR>瀛樹腑鐨勪俊鎭緭鍑哄埌鏂囦歡涓?BR>5鍖轟腑錛屽Data.txt鏂囦歡榪涜杈撳嚭鏃訛紝鏄厛鎶婂熀鏈被鍨嬬殑鏁版嵁杈撳嚭灞嬬紦瀛樹腑錛屽啀鎶婄紦
瀛樹腑鐨勬暟鎹緭鍑哄埌鏂囦歡涓紱瀵規(guī)枃浠惰繘琛岃鍙栨搷浣滄椂錛屽厛鎶婃枃浠朵腑鐨勬暟鎹鍙栧埌緙撳瓨涓?BR>錛屽啀浠庣紦瀛樹腑浠ュ熀鏈被鍨嬬殑褰㈠紡榪涜璇誨彇銆傛敞鎰廼n5.readDouble()榪欎竴琛屻傚洜涓哄啓鍏?BR>絎竴涓獁riteDouble()錛屾墍浠ヤ負浜嗘紜樉紺恒備篃瑕佷互鍩烘湰綾誨瀷鐨勫艦寮忚繘琛岃鍙栥?BR>6鍖烘槸閫氳繃RandomAccessFile綾誨鏂囦歡榪涜鎿嶄綔銆?BR>
]]>
(榪欐槸鎴戦厤緗垚鍔熺殑錛岃繕鏈夎澶氬湴鏂逛笉鍚堢悊錛屾榪庡ぇ瀹舵寚鏁?
絎竴姝ワ細涓嬭澆j2sdk鍜宼omcat錛?BR>鍒皊un瀹樻柟绔欑偣錛?/FONT>http://java.sun.com/j2se/1.5.0/download.jsp錛変笅杞絡2sdk錛屾敞鎰忎笅杞界増鏈負Windows Offline Installation鐨凷DK錛屽悓鏃舵渶濂戒笅杞絁2SE Documentation錛?BR>鐒跺悗鍒皌omcat瀹樻柟绔欑偣錛?/FONT>http://www.apache.org/dist/jakarta/tomcat-5/錛変笅杞絫omcat錛堜笅杞芥渶鏂扮増鏈殑tomcat錛夛紱
錛堣繖閲屾垜涓嬬殑鏄痡dk 1.5.0錛宼omcat 5.59錛?BR>
絎簩姝ワ細瀹夎鍜岄厤緗綘鐨刯2sdk鍜宼omcat錛?BR>鎵цj2sdk鍜宼omcat鐨勫畨瑁呯▼搴忥紝鐒跺悗涓璺疦ext鍗沖彲銆?瀹夎tomcat鐨勬椂鍊欒鎻愮ず浣犺緭鍏dmin鐨勫瘑鐮侊紝璁板緱鎶婅嚜宸辮緭鐨勫瘑鐮佽涓嬫潵)1.瀹夎j2sdk浠ュ悗錛岄渶瑕侀厤緗竴涓嬬幆澧冨彉閲忥紝鍦ㄦ垜鐨勭數鑴?>灞炴?>楂樼駭->鐜鍙橀噺->緋葷粺鍙橀噺涓坊鍔犱互涓嬬幆澧冨彉閲?BR>JAVA_HOME=H:\Java\jdk1.5.0
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;錛?;涓瀹氫笉鑳藉皯錛屽洜涓哄畠浠h〃褰撳墠璺緞)
path=%JAVA_HOME%\bin
(榪欓噷鎴戠殑瀹夎鐩綍鏄疕:\Java\jdk1.5.0錛屾垜鍙槸鏍規(guī)嵁鑷繁鐨勫畨瑁呯洰褰曟潵璁查厤緗紝褰撶劧錛屼綘鍙互鏈変竴涓洿鍌葷摐鐨勫彇寰楀畨瑁呯洰褰曠殑鏂規(guī)硶錛岀洿鎺ヤ粠鎴戠殑鐢佃剳榪涘埌浣犵殑瀹夎鐩綍錛岀劧鍚庡鍒跺湴鍧鏍忛噷鐨勫湴鍧鍗沖彲^_^)
鎺ョ潃錛屾垜浠潵嫻嬭瘯浣犵殑java寮鍙戠幆澧冩槸鍚﹀凡緇忛厤濂斤紝浠ョ粡鍏哥殑HelloWorld寮濮嬪惂錛?BR>public class HelloWorld {
public static void main(String [] args) {
System.out.println("HelloWorld!");
}
}
灝嗕笂闈㈣繖孌電▼搴忓彟瀛樹負HelloWorld.java銆傝繘鍏md錛岀劧鍚巆d鍒癏elloWorld.java鎵鍦ㄧ殑鐩綍錛岄敭鍏ュ涓嬪懡浠?FONT color=#ff0000>javac HelloWorld.java鎺ョ潃java HelloWorld姝ゆ椂浣犲簲璇ョ湅鍒拌緭鍑虹殑鏄疕elloWorld!錛岃鏄巎ava鐜閰嶇疆鎴愬姛^_^;
CATALINA_BASE=H:\Tomcat 5.5;
鐒跺悗淇敼鐜鍙橀噺涓殑classpath錛屾妸tomat瀹夎鐩綍涓嬬殑common\lib涓嬬殑servlet.jar榪藉姞鍒癱lasspath涓幓
浠ヤ笅鏄慨鏀瑰悗鐨刢lasspath錛?BR>.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;%CATALINA_HOME%\common\lib\mssqlserver.jar;
鎺ョ潃鍙互鍚姩tomcat錛屽湪IE涓闂?/FONT>http://localhost:8080錛屽鏋滅湅鍒皌omcat鐨勯偅鏀皬鐚瘽璇存槑瀹夎鎴愬姛浜嗐?BR>
絎笁姝ワ細寤虹珛鑷繁鐨刯sp app鐩綍
1.鍒癟omcat鐨勫畨瑁呯洰褰曠殑webapps鐩綍錛屽彲浠ョ湅鍒癛OOT錛宔xamples, tomcat-docs涔嬬被Tomcat鑷甫鐨勭殑鐩綍錛?
2.鍦╳ebapps鐩綍涓嬫柊寤轟竴涓洰褰曪紝璧峰悕鍙玬yapp錛?nbsp;
3.鍦╩yapp涓嬫柊寤轟竴涓祴璇曠殑jsp欏甸潰錛屾枃浠跺悕涓篿ndex.jsp錛屾枃浠跺唴瀹瑰涓嬶細
<%@page contentType="text/html;charset=gb2312" language="java"%>
<html>
<body>
<center>
<%
out.println("HelloWorld!");
out.println("浣犲ソ!涓栫晫!");
%>
</center>
</body>
</html>
4.閲嶅惎Tomcat
5.鎵撳紑嫻忚鍣紝杈撳叆http://localhost:8080/myapp/index.jsp 鐪嬪埌
HelloWorld! 浣犲ソ!涓栫晫!
鐨勮瘽璇存槑灝辨垚鍔熶簡銆?BR>
絎洓姝ワ細寤虹珛鑷繁鐨凷ervlet錛?BR>1.鍦╳ebapps鐩綍涓嬫柊寤轟竴涓洰褰曪紝璧峰悕鍙獺elloWorld錛?BR>
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("Hello World!");
}
}
3 .緙栬瘧
灝咹elloWorld.java緙栬瘧
鐒跺悗鍦ㄤ細浜х敓涓涓紪璇戝悗鐨剆ervlet鏂囦歡錛欻elloWorld.class
4 .灝嗙粨鏋凥elloWorld.class鍓垏鍒?CATALINA_HOME%\webapps\HelloWorld\WEB-INF\classes涓嬶紝濡傛灉WEB-INF\classes鐩綍涓嶅瓨鍦紝灝辨柊寤轟竴涓?鐜板湪webapps\HelloWorld\WEB-INF\classes涓嬫湁HelloWorld.class鐨勬枃浠?(娉ㄦ剰錛氳娉ㄦ剰鏂囦歡澶瑰拰鏂囦歡鍚嶇殑澶у皬鍐欙紒)
5 .鍦╳ebapps\HelloWorld\WEB-INF涓嬫柊寤簑eb.xml鏂囦歡錛屾坊鍔爏ervlet鍜宻ervlet-mapping
緙栬緫鍚庣殑web.xml濡備笅鎵紺猴細
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>HelloWorld</display-name>
<description>
HelloWorld
</description>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<display-name>HelloWorld</display-name>
<description>HelloWorld</description>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>
榪欐璇濅腑鐨剆ervlet榪欎竴孌靛0鏄庝簡浣犺璋冪敤鐨凷ervlet錛岃宻ervlet-mapping鍒欐槸灝嗗0鏄庣殑servlet鈥滄槧灝勨濆埌鍦板潃/Hello涓?nbsp;
6 .濂戒簡錛屽惎鍔═omcat錛屽惎鍔ㄦ祻瑙堝櫒錛岃緭鍏?/FONT>http://localhost:8080/HelloWorld/Hello 濡傛灉鐪嬪埌杈撳嚭Hello World! .灝辮鏄庣紪鍐欑殑servlet鎴愬姛浜嗐?
(娉ㄦ剰錛氫慨鏀逛簡web.xml浠ュ強鏂板姞浜哻lass錛岄兘瑕侀噸鍚疶omcat .)
絎簲姝ワ細寤虹珛鑷繁鐨凚ean錛?
1.鐢ㄤ綘鏈鐔熸?zhèn)夌殑缂栬緫鍣ㄥQ堝緩璁嬌鐢ㄦ湁璇硶媯鏌ョ殑java ide錛夋柊寤轟竴涓猨ava紼嬪簭錛屾枃浠跺悕涓篢estBean.java錛屾枃浠跺唴瀹瑰涓嬶細
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
2 .緙栬瘧
灝員estBean.java鏀懼湪c:\test涓嬶紝浣跨敤濡備笅鍛戒護緙栬瘧錛?
C:\Test>javac TestBean.java
鐒跺悗鍦╟:\Test涓嬩細浜х敓涓涓紪璇戝悗鐨刡ean鏂囦歡錛歍estBean.class
3 .灝員estBean.class鏂囦歡鍓垏鍒?%CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test涓嬶紝
4 .鏂板緩涓涓猅estBean.jsp鏂囦歡錛屾枃浠跺唴瀹逛負錛?
<%@ page import="test.TestBean" %>
<html><body><center>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
</center></body></html>
5 .濂戒簡錛岄噸鍚疶omcat錛屽惎鍔ㄦ祻瑙堝櫒錛岃緭鍏?A href="http://localhost:8080/myapp/TestBean.jsp">http://localhost:8080/myapp/TestBean.jsp 濡傛灉鐪嬪埌杈撳嚭Java bean name is: This is a test java bean.灝辮鏄庣紪鍐欑殑Bean鎴愬姛浜?BR>榪欐牱灝卞畬鎴愪簡鏁翠釜Tomcat涓嬬殑jsp銆乻ervlet鍜宩avabean鐨勯厤緗傛帴涓嬫潵闇瑕佸仛鐨勪簨鎯呭氨鏄鐪嬩功銆佸璇誨埆浜虹殑濂戒唬鐮侊紝鑷繁澶氬姩鎵嬪啓浠g爜浠ュ寮鴻嚜宸卞湪榪欐柟闈㈠紑鍙戠殑鑳藉姏浜嗐?/FONT>