锘??xml version="1.0" encoding="utf-8" standalone="yes"?>中中文字幕亚洲无线码,中文字幕亚洲不卡在线亚瑟,国产亚洲精品xxx http://m.tkk7.com/nighty/category/31702.html鎶樿吘鐨勫勾鍗?/description>zh-cn Thu, 28 Apr 2011 10:15:27 GMT Thu, 28 Apr 2011 10:15:27 GMT 60 鎵╁睍commons dbutils鐨凧avaBean杞崲鏂瑰紡 http://m.tkk7.com/nighty/archive/2011/04/26/349050.html瀵掓綰?/dc:creator>瀵掓綰?/author>Tue, 26 Apr 2011 08:41:00 GMT http://m.tkk7.com/nighty/archive/2011/04/26/349050.html http://m.tkk7.com/nighty/comments/349050.html http://m.tkk7.com/nighty/archive/2011/04/26/349050.html#Feedback 0 http://m.tkk7.com/nighty/comments/commentRss/349050.html http://m.tkk7.com/nighty/services/trackbacks/349050.html 寮曡█錛氭渶榪戝張鐢ㄥ埌dbutils錛屼箣鍓嶄竴鐩寸敤Map鏄犲皠鐨勬柟寮忓彇鍑簊elect鐨勭粨鏋滃啀鎵嬪伐鍋氳漿鎹€傛湁鍐欒繃涓綃囨枃绔犺MapHandler鏂瑰紡鐨勪竴涓己闄鳳細(xì)鍏充簬commons dbutils緇勪歡鐨勪竴涓皬緙洪櫡鍒嗘瀽 錛岀敤榪欑鏂瑰紡錛屽湪欏圭洰涓嶅ぇ鐨勬儏鍐典笅錛屽啓涓浜汳ap鍒癑avaBean鐨勮漿鎹唬鐮佸伐浣滈噺涓嶅ぇ錛屼絾鏄湪鏁版嵁搴撹〃榪囧騫朵笖琛ㄤ腑鐨勫瓧孌佃繃澶氱殑鎯呭喌涓嬶紝榪欑閲嶅鐨剆etter鎰熻鏈夌偣鐑?chǔ)銆備簬鏄張閲嶆柊鎬濊冧簡BeanHandler鍜孊eanListHandler鐨勬儏鍐碉紝dbutils搴曞眰鏄犲皠鐢ㄧ殑鍙嶅皠錛屾ц兘涓婅偗瀹氭湁鎹熷け錛屼笉榪囧湪澶у鏁伴」鐩妯′笉鏄緢澶х殑鎯呭喌涓嬶紝榪欑偣鎹熷け鍙互蹇界暐錛屽甫鏉ョ殑浠g爜鍑忓皯鍗存槸姣旇緝鍙銆?br />
闂鍦ㄥ摢閲岋紵鍏堢湅涓孌靛畼鏂圭殑紺轟緥浠g爜錛?br />
QueryRunner run = new QueryRunner(dataSource);
// Use the BeanHandler implementation to convert the first
// ResultSet row into a Person JavaBean.
ResultSetHandler < Person > h = new BeanHandler < Person > (Person. class );
// Execute the SQL statement with one replacement parameter and
// return the results in a new Person object generated by the BeanHandler.
Person p = run.query(
" SELECT * FROM Person WHERE name=? " , h, " John Doe " );
榪欓噷鏈変釜鍦版柟鏈夌害鏉燂紝灝辨槸瑕佹眰紺轟緥涓殑JavaBean綾籔erson涓殑瀛楁瀹氫箟瑕佸拰鏁版嵁搴撶殑瀛楁瀹氫箟涓鑷淬侸ava鐨勫懡鍚嶄範(fàn)鎯竴鑸槸楠嗗嘲鍐欐硶錛屼緥濡倁serId錛岄偅涔堟暟鎹簱涓氨蹇呴』瀹氫箟涓簎serId錛岃岄棶棰樺湪浜庯細(xì)鏈夋椂鍊欐垜浠渶瑕佹暟鎹簱涓瓧孌電殑瀹氫箟鏍煎紡涓嶫avaBean鐨勫懡鍚嶄笉涓鏍鳳紝姣斿鏁版嵁搴撳畾涔変負(fù)錛歶ser_id錛岃孞avaBean鍒欏畾涔変負(fù)userId
鐪嬫簮浠g爜鍙兘鏈夌偣璐規(guī)椂闂達(dá)紝鍦ㄥ畼鏂圭殑example欏甸潰鐨勬渶涓嬮潰鏋滅劧鏈変竴孌靛叧浜庤嚜瀹氫箟BeanProcessor鐨勬寚寮曘傛憳褰曞嚭鏉ワ細(xì)
BasicRowProcessor uses a BeanProcessor to convert ResultSet columns into JavaBean properties. You can subclass and override processing steps to handle datatype mapping specific to your application. The provided implementation delegates datatype conversion to the JDBC driver.
BeanProcessor maps columns to bean properties as documented in the BeanProcessor.toBean() javadoc. Column names must match the bean's property names case insensitively. For example, the firstname column would be stored in the bean by calling its setFirstName() method. However, many database column names include characters that either can't be used or are not typically used in Java method names. You can do one of the following to map these columns to bean properties:
1. Alias the column names in the SQL so they match the Java names: select social_sec# as socialSecurityNumber from person
2. Subclass BeanProcessor and override the mapColumnsToProperties() method to strip out the offending characters.
澶ф鎰忔濆氨鏄彁渚涗簩縐嶆柟寮忥細(xì)涓縐嶅氨鏄渶鐩存帴鐨勶紝鐢╝s鍏抽敭瀛楁妸colName閲嶅懡鍚嶏紝鍙︿竴縐嶆柟寮忓氨鏄戶鎵緽eanProcessor綾伙紝閲嶅啓mapColumnsToProperties()鏂規(guī)硶銆?br />
閭e綋鐒舵槸絎簩縐嶆柟寮忔洿鍔犲叿鏈変唬琛ㄦс傚皾璇曚簡涓涓嬨備唬鐮佸涓嬶細(xì)
1 public class CustomBeanProcessor extends BeanProcessor {
2
3 @Override
4 protected int [] mapColumnsToProperties(ResultSetMetaData rsmd,
5 PropertyDescriptor[] props) throws SQLException {
6 int cols = rsmd.getColumnCount();
7 int columnToProperty[] = new int [cols + 1 ];
8 Arrays.fill(columnToProperty, PROPERTY_NOT_FOUND);
9
10 for ( int col = 1 ; col <= cols; col ++ ) {
11 String columnName = rsmd.getColumnLabel(col);
12 if ( null == columnName || 0 == columnName.length()) {
13 columnName = rsmd.getColumnName(col);
14 }
15 columnName = colNameConvent(columnName); // 鍦ㄨ繖閲岃繘琛屾暟鎹簱琛╟olumnName鐨勭壒孌婂鐞?/span>
16 for ( int i = 0 ; i < props.length; i ++ ) {
17
18 if (columnName.equalsIgnoreCase(props[i].getName())) {
19 columnToProperty[col] = i;
20 break ;
21 }
22 }
23 }
24 return columnToProperty;
25 }
26
27 /** */ /**
28 * 鏁版嵁搴撳垪鍚嶉噸鏂扮害瀹?br />
29 * @param columnName
30 * @return
31 */
32 private String colNameConvent(String columnName) {
33 String[] strs = columnName.split( " _ " );
34 String conventName = "" ;
35 for ( int i = 0 ; i < strs.length; i ++ ) {
36 conventName += StringUtils.capitalize(strs[i]);
37 }
38 StringUtils.uncapitalize(conventName);
39 return conventName;
40 }
41 }
娉ㄦ剰mapColumnsToProperties鏂規(guī)硶鐨勯昏緫鏄粠鐖剁被鐨勬柟娉曚腑鐩存帴澶嶅埗鍑烘潵鐨勶紝鐒跺悗鍦ㄧ15琛岄偅閲屽彉浜嗕釜鎴忔硶錛岃繖閲岀殑columnName灝辨槸浠庢暟鎹簱涓鍑烘潵鐨勶紝鑷畾涔変竴涓猵rivate鏂規(guī)硶鐢ㄤ簬杞崲鍛藉悕錛岃繖閲屼綘灝卞彲浠ユ坊鍔犺嚜宸辯殑鍛藉悕綰︽潫銆備緥濡備笂闈㈠氨鏄妸 user_id 杞寲涓篔ava鐨勯獑宄板啓娉曪細(xì)userId
鍐嶆繁鍏ヤ竴灞傛濊冿紝浣犲彲浠ュ湪榪欓噷榪涜鏇村鎵╁睍錛屼互渚胯鑷繁鍙互閫夋嫨涓嶅悓鐨勫懡鍚嶈漿鎹㈡柟寮忋傚畾涔変簡榪欎釜Processor涔嬪悗錛屼笅闈㈢湅鐪嬪浣曡皟鐢細(xì)
Connection conn = ConnectionManager.getInstance().getConnection();
QueryRunner qr = new QueryRunner();
CustomBeanProcessor convert = new CustomBeanProcessor();
RowProcessor rp = new BasicRowProcessor(convert);
BeanHandler < User > bh = new BeanHandler < User > (User. class , rp);
User u = qr.query(conn, sql, bh, params);
DbUtils.close(conn);
鏄笉鏄潪甯哥伒媧伙紵濡傛灉鏄兂榪斿洖List緇撴灉鐨勶紝灝辨妸BeanHandler鏇挎崲鎴怋eanListHander綾伙紝榪樺彲浠ュ啀榪涗竴姝ュ皝瑁呰繖浜涙搷浣滐紝鎶借薄鍒板叕鍏辨ā鍧椾腑鍘伙紝璁╁閮ㄧ洿鎺ヤ紶鍏ql璇彞鍜孋lass灝辮兘鐩存帴榪斿洖鎯寵鐨勭粨鏋滐紝褰撶劧浣犲緱澧炲姞娉涘瀷鐨勫畾涔夈傚悓鏍蜂婦涓涓皝瑁呯殑渚嬪瓙錛?br />
1 protected < T > List < T > selectBeanList(Connection conn, String sql, Class < T > type,
2 Object[] params) throws Exception {
3 log.debug(" select sql:[ " + sql + " ] " );
4 QueryRunner qr = new QueryRunner();
5 CustomBeanProcessor convert = new CustomBeanProcessor();
6 RowProcessor rp = new BasicRowProcessor(convert);
7 ResultSetHandler< List < T >> bh = new BeanListHandler < T > (type, rp);
8 List< T > list = qr.query(conn, sql, bh, params);
9 return list;
10 }
鑷充簬涓轟粈涔堟墿灞曡繖涓柟娉曞氨鍙互瀹炵幇榪欎釜閫昏緫灝卞緱鍘昏窡婧愪唬鐮佺湅瀹冪殑鍐呴儴瀹炵幇錛岀敤浜嗕竴浜汮avaBean鐨勫鐞嗗拰鍙嶆槧鐨勬妧宸ф潵鍋氱殑銆傚叿浣撳氨涓嶈銆?br />
鎬葷粨錛歝ommons緇勪歡閮借璁″緱闈炲父濂斤紝鍙墿灞曟у拰瀹炵敤鎬ч兘闈炲父楂樸傝櫧鐒朵笂闈婦渚嬪疄鐜頒簡杞崲閫昏緫鐨勬浛鎹紝浣嗘槸浠嶇劧闇瑕佸紑鍙戜漢鍛樺湪璁捐鏁版嵁搴撶殑鏃跺欏拰鍐橨avaBean鏃墮兘瑕佷弗鏍煎仛濂借鑼冿紝閬垮厤浜х敓涓嶅繀瑕佺殑闂銆傝繖鏂歸潰Ruby On Rails灝辯洿鎺ュ唴閮ㄥ疄鐜幫紝鍔ㄦ佽璦鐨勪紭鐐圭壒鍒兘浣撶幇錛屽悓鏃跺己鍒朵綘鍦ㄨ璁℃椂蹇呴』鐢ㄨ繖縐嶆柟寮忥紝鍏稿瀷鐨勭害瀹氫紭浜庨厤緗師鍒欍傚綋鐒?dòng)灱屽湪dbutils閲屼綘鎰挎剰浜岀瀛楁鍚嶉兘涓鏍蜂篃鏃犲彲鍘氶潪銆?br />
緙虹偣錛欱eanProcessor鏄笉鏀寔鍏寵仈鏌ヨ鐨勶紝鎵浠ヤ笂闈㈢殑鏂瑰紡涔熷彧鑳藉眬闄愪簬鍗曡〃鐨勮漿鎹紝榪欑偣灝變笉濡俶yBatis鍜孒ibernate錛屽綋鐒剁敤榪欎簩涓氨寮曞叆浜嗕竴浜涘鏉傛э紝濡備綍鏉冭 闇瑕佽嚜宸辮 閲忥紝鍝釜鐢ㄥ緱濂介兘涓鏍楓傛湰浜哄氨涓嶅枩嬈yBatis閭g鎶奡QL鍐欏埌XML涓殑鏂瑰紡錛岃榪囧お澶嶆潅鐨凷QL鏈緇堝湪XML閲岄潰鍙樺緱闈㈢洰鍏ㄩ潪錛屽鏋滄槸鎺ユ墜鍒漢鐨勪唬鐮侊紝鏄緢鐥涜嫤鐨勶紝鑰屼笖浣犳棤娉曢伩鍏嶅彧淇敼XML鑰屼笉鏀笿ava錛屾棦鐒朵簩鑰呴兘瑕佹敼錛岄偅鐩存帴鍐橨ava閲屽張鏈変粈涔堝尯鍒紵綆鍗曞氨鏄編銆傛牸寮忓拰娉ㄩ噴鍐欏ソ涓鐐瑰悓鏍峰緢瀹規(guī)槗鐞嗚В錛?
]]>鍏充簬commons dbutils緇勪歡鐨勪竴涓皬緙洪櫡鍒嗘瀽 http://m.tkk7.com/nighty/archive/2011/02/12/344155.html瀵掓綰?/dc:creator>瀵掓綰?/author>Sat, 12 Feb 2011 09:33:00 GMT http://m.tkk7.com/nighty/archive/2011/02/12/344155.html http://m.tkk7.com/nighty/comments/344155.html http://m.tkk7.com/nighty/archive/2011/02/12/344155.html#Feedback 6 http://m.tkk7.com/nighty/comments/commentRss/344155.html http://m.tkk7.com/nighty/services/trackbacks/344155.html
閴翠簬鍓嶉潰娌℃湁鏃墮棿浜嗚В錛屽氨閮界矖鐣ヤ嬌鐢ㄤ簡涓婇潰閭g綺楁毚鐨刴ap.get("")鏉ュ鐞嗭紝鏈濂界殑鎯呭喌鏄dbutils緇勪歡鑳借嚜鍔ㄨ瘑鍒埌as綾誨瀷鐨勫垪鍚嶃備簬鏄湁絀轟簡灝變笓闂ㄧ湅浜嗙湅瀹冪殑婧愪唬鐮侊紝鍙戠幇鏈涓昏鐨勪竴孌典唬鐮佸涓嬶細(xì)
1 public Map < String, Object > toMap(ResultSet rs) throws SQLException {
2 Map< String, Object > result = new CaseInsensitiveHashMap();
3 ResultSetMetaData rsmd = rs.getMetaData();
4 int cols = rsmd.getColumnCount();
5
6 for ( int i = 1 ; i <= cols; i ++ ) {
7 result.put(rsmd.getColumnName(i), rs.getObject(i));
8 }
9
10 return result;
11 }
CaseInsensitiveHashMap鏄痙butils鑷畾涔夌殑涓涓狹ap錛屽拷鐣ラ敭澶у皬鍐欑殑K-V瀛楀吀錛屼絾鏄痥ey浣跨敤鐨勬槸ResultSetMetaData.getColumnName()錛屾垜鎯抽棶棰樺ぇ姒傚嚭鍦ㄨ繖閲岋紝浜庢槸璁ょ湡緲諱簡緲籮ava鐨刟pi鏂囨。錛堝紑鍙戝仛涔呬簡瀹規(guī)槗閬楀繕鍩虹錛夛紝鏋滅劧錛屽師鏉?strong>getColumnName()鏄細(xì)鑾峰彇鎸囧畾鍒楃殑鍚嶇О錛?/span>鑰宎s鍏抽敭瀛椾箣鍚庯紝浣垮垪鍚嶇О鍙樻垚鐢ㄤ簬鏄劇ず鐨勬剰涔夛紝榪欎釜鏃跺欏簲璇ヤ嬌鐢?strong>getColumnLabel()錛?span style="color: #339966">鑾峰彇鐢ㄤ簬鎵撳嵃杈撳嚭鍜屾樉紺虹殑鎸囧畾鍒楃殑寤鴻鏍囬銆傚緩璁爣棰橀氬父鐢?SQL AS
瀛愬彞鏉ユ寚瀹氥傚鏋滄湭鎸囧畾 SQL AS
錛屽垯浠?getColumnLabel
榪斿洖鐨勫煎皢鍜?getColumnName
鏂規(guī)硶榪斿洖鐨勫肩浉鍚?/span>銆傝嚜宸辨墜鍔ㄨ瘯楠屼簡涓涓嬶紝鏋滅劧濡傛墍鏂欙紝闂灝卞嚭鍦ㄨ繖閲屻?br />
鎵浠ュ憿錛屽鏋滄兂瑕乨butils鍦ㄨ嚜鍔ㄨ漿鎹ap鍙?qiáng)MapList鏃惰兘璇嗗埆鑱氬悎鍑芥暟鐨勫垪鍚嶏紝閭d箞鏈濂界殑鍋氭硶灝辨槸閲嶈澆榪欑鏂瑰紡錛屾噿涓鐐圭殑錛屼綘灝卞共鑴嗕慨鏀逛笂闈㈤偅孌典唬鐮侊紝璁╁畠鍒ゆ柇鏄惁浣跨敤浜哸s鍏抽敭瀛椼備釜浜烘殏鏃舵悶涓嶆竻妤氬畼鏂逛負(fù)浠涔堟病鏈夎冭檻榪欎竴姝ワ紝鏈夋椂闂村啀鎬濊冧竴涓嬶紒
]]> 灝咥pache Roller閮ㄧ講鍒癕yEclipse涓婇潰 http://m.tkk7.com/nighty/archive/2009/11/22/303255.html瀵掓綰?/dc:creator>瀵掓綰?/author>Sun, 22 Nov 2009 13:04:00 GMT http://m.tkk7.com/nighty/archive/2009/11/22/303255.html http://m.tkk7.com/nighty/comments/303255.html http://m.tkk7.com/nighty/archive/2009/11/22/303255.html#Feedback 2 http://m.tkk7.com/nighty/comments/commentRss/303255.html http://m.tkk7.com/nighty/services/trackbacks/303255.html 闃呰鍏ㄦ枃 ]]> httpClient3.1涓枃鍙傛暟GET璇鋒眰鐨勮В鍐蟲柟娉?/title> http://m.tkk7.com/nighty/archive/2008/07/16/215143.html瀵掓綰?/dc:creator>瀵掓綰?/author>Wed, 16 Jul 2008 02:31:00 GMT http://m.tkk7.com/nighty/archive/2008/07/16/215143.html http://m.tkk7.com/nighty/comments/215143.html http://m.tkk7.com/nighty/archive/2008/07/16/215143.html#Feedback 2 http://m.tkk7.com/nighty/comments/commentRss/215143.html http://m.tkk7.com/nighty/services/trackbacks/215143.html
httpClient鐨凣etMethod綾誨姞鍏ュ弬鏁扮殑鏂規(guī)硶鏄涓嬶細(xì)
璺熻釜涓涓媓ttpClient鐨凣etMethod鐨勬簮浠g爜錛岀戶鎵胯嚜HttpMethodBase錛屾簮鐮佸涓嬶細(xì)
public void setQueryString(String queryString) {
this .queryString = queryString;
}
public void setQueryString(NameValuePair[] params) {
LOG.trace( " enter HttpMethodBase.setQueryString(NameValuePair[]) " );
queryString = EncodingUtil.formUrlEncode(params, " UTF-8 " );
}
EncodingUtil鏄痟ttpClient瀹氫箟鐨勪竴涓紪鐮佸伐鍏風(fēng)被錛岀敱浜庨粯璁よ緗殑鏄疷TF-8錛屾墍浠ュ浜庝竴浜涚郴緇熷彲鑳藉氨鏃犳硶璇嗗埆銆傚彲浠ュ湪澶栭儴榪欐牱鏇存敼錛?br />
method.setQueryString(EncodingUtil.formUrlEncode(pair, "GB2312"));鍙﹀錛?span style="color: red">娉ㄦ剰璇鋒眰澶翠篃瑕佷慨鏀逛負(fù)瀵瑰簲鐨勪竴鑷寸紪鐮佹柟寮?/span>錛宮ethod.addRequestHeader("Content-type" , "text/html; charset=GB2312");濡傛灉榪欎簩涓紪鐮佷笉涓鑷達(dá)紝灝變細(xì)寮曡搗涔辯爜銆?br />
鍒氬紑濮嬬殑鏃跺欏皾璇曡繃閮戒嬌鐢ㄤ竴鑷寸殑UTF-8錛屼絾鏄彂鐜拌繕鏄貢鐮侊紝榪欏簲璇ユ槸鏈嶅姟鍣ㄧ殑鍘熷洜銆侷E榛樿鐨勫氨鏄噰鐢ㄦ搷浣滅郴緇焀indows鐨勪腑鏂囩紪鐮佸幓榪涜Encoder鐨勶紝鏈嶅姟鍣ㄥ師鍏堝熀鏈笂閮戒負(fù)IE鏈嶅姟鐨勶紝鎵浠ユ敼涓篏B2312灝辮兘姝e父璇嗗埆寰楀埌銆?br />
鍙﹀錛屼笂闈㈡彁鍒扮殑EncodingUtil榪欎釜宸ュ叿鏄粠apache鐨勫彟涓涓粍浠禼odec鍖呰鑰屾潵鐨勶紝鑰岄潪SUN鐨刄RLEncoder銆傛湁鍏磋叮鐨勫彲浠ョ爺璇諱竴涓嬫簮浠g爜銆?
]]> httpclient3.1浣跨敤灝忕粨 http://m.tkk7.com/nighty/archive/2008/06/11/207121.html瀵掓綰?/dc:creator>瀵掓綰?/author>Wed, 11 Jun 2008 07:18:00 GMT http://m.tkk7.com/nighty/archive/2008/06/11/207121.html http://m.tkk7.com/nighty/comments/207121.html http://m.tkk7.com/nighty/archive/2008/06/11/207121.html#Feedback 6 http://m.tkk7.com/nighty/comments/commentRss/207121.html http://m.tkk7.com/nighty/services/trackbacks/207121.html Jakarta鐨刪ttpclient3.1鏄渶鏂扮増鏈紝欏圭洰涓渶瑕佺敤紼嬪簭妯℃嫙嫻忚鍣ㄧ殑GET鍜孭OST鍔ㄤ綔銆傚湪浣跨敤榪囩▼涓亣鍒頒笉灝戦棶棰樸?br />
1. 甯﹂檮浠剁殑POST鎻愪氦
鏈寮濮嬮兘鏄嬌鐢∕ultipartPostMethod榪欎釜綾伙紝鐜板湪宸茬粡搴熷純榪欎釜綾諱簡銆侫PI璇存槑錛?strong>Deprecated. Use MultipartRequestEntity
in conjunction with PostMethod
instead. 浣跨敤PostMethod鍙互瀹炵幇鐨勫姛鑳斤紝灝辨病鏈夊繀瑕佸啀寮勪竴涓狹ultipartPostMethod浜嗐備笅闈㈡槸涓孌墊渶綆鍗曠殑紺轟緥錛?/p>
PostMethod post = new PostMethod();
NameValuePair[] pairs = new NameValuePair[ 2 ];
pairs[ 0 ] = new NameValuePair( " para1 " , " value1 " );
pairs[ 0 ] = new NameValuePair( " para2 " , " value2 " );
post.setRequestBody(pairs);
HttpClient client = new HttpClient();
try {
client.executeMethod(post);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
榪欐槸閽堝涓鑸殑form褰㈠紡鐨勬彁浜わ紝鑰屼笖榪欎釜form閲岄潰涓嶅甫闄勪歡鐨勩傚鏋滃甫闄勪歡錛岄偅涔堣繖縐嶆柟娉曞氨涓嶈搗浣滅敤錛岄檮浠朵笂浼犵殑鍙傛暟鍜屾櫘閫氬弬鏁版棤娉曚竴鍚屽湪鏈嶅姟鍣ㄨ幏鍙栧埌銆?font size="-1">org.apache.commons.httpclient.methods.multipart 榪欎釜鍖呭氨鏄負(fù)澶勭悊鏂囦歡涓婁紶榪欑澶氬艦寮忓弬鏁扮殑鎯呭喌鐨勩傛渶涓昏鐨勭被鏄疨art錛堜唬琛ㄤ竴縐峱ost object錛夛紝瀹冩湁浜屼釜姣旇緝閲嶈鐨勫瓙綾伙細(xì)FilePart鍜孲tringPart錛屼竴涓槸鏂囦歡鐨勫弬鏁幫紝鍙︿竴涓氨鏄櫘閫氱殑鏂囨湰鍙傛暟銆傚畠鐨勫吀鍨嬩嬌鐢ㄦ柟娉曞涓嬶細(xì)
String url = " http://localhost:8080/HttpTest/Test " ;
PostMethod postMethod = new PostMethod(url);
StringPart sp = new StringPart( " TEXT " , " testValue " );
FilePart fp = new FilePart( " file " , " test.txt " , new File( " ./temp/test.txt " ));
MultipartRequestEntity mrp = new MultipartRequestEntity( new Part[] {sp, fp} , postMethod
.getParams());
postMethod.setRequestEntity(mrp);
// 鎵цpostMethod
HttpClient httpClient = new HttpClient();
try {
httpClient.executeMethod(postMethod);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
鍦ㄧ浜岃PostMethod postMethod = new PostMethod();鍚庨潰錛屾湁浜鴻闇瑕佷嬌鐢╬ostMehtod.setRequestHeader("Content-type", "multipart/form-data"); Content-type鐨勮姹傜被鍨嬭繘琛屾洿鏀廣備絾鏄垜鍦ㄤ嬌鐢ㄨ繃紼嬫病鏈夊姞涓婅繖涓鍙ワ紝鏌ヤ簡涓涓媓ttpCleint鐨勯粯璁ontent-type鏄痑pplication/octet-stream銆傚簲璇ユ槸娌℃湁褰卞搷鐨勩傚浜嶮IME綾誨瀷鐨勮姹傦紝httpclient寤鴻鍏ㄧ敤MulitPartRequestEntity榪涜鍖呰錛屽氨鏄笂闈㈢殑鐢ㄦ硶銆?br />
2. 鍙傛暟涓枃鐨勫鐞嗛棶棰?br />
httpclient鐨勯粯璁ょ紪鐮侀兘鏄疘SO-8859-1錛岄偅鑲畾灝辨棤娉曟敮鎸佷腑鏂囧弬鏁頒簡銆傚紩鐢ㄤ竴涓嬭繖綃囨枃绔狅細(xì)http://thinkbase.net/w/main/Wiki?HttpClient+POST+%E7%9A%84+UTF-8+%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98 錛屾寜鐓т綔鑰呯殑璇存硶錛屽氨鍙互姝e父瑙e喅涓枃緙栫爜鐨勯棶棰樸傚叾涓渶鍏抽敭鐨勬槸淇敼EncodingUtil榪欎釜綾葷殑涓涓柟娉曞疄鐜般傚彟澶栵紝FilePart鍜孲tringPart鐨勬瀯閫犳柟娉曢兘鏈変竴涓甫緙栫爜鎸囧畾鐨勫弬鏁幫紝涓轟簡鍑忓皯闂鐨勫嚭鐜幫紝寤鴻鎵鏈夌殑閮藉甫涓婄粺涓鐨勭紪鐮侊紝鍖呮嫭postMethod.getParams()銆傜ず渚嬪涓嬶細(xì)
String url = " http://localhost:8080/HttpTest/Test " ;
PostMethod postMethod = new PostMethod(url);
StringPart sp = new StringPart( " TEXT " , " testValue " , " GB2312 " );
FilePart fp = new FilePart( " file " , " test.txt " , new File( " ./temp/test.txt " ), null , " GB2312 " );
postMethod.getParams().setContentCharset( " GB2312 " );
MultipartRequestEntity mrp = new MultipartRequestEntity( new Part[] {sp, fp} , postMethod
.getParams());
postMethod.setRequestEntity(mrp);
// 鎵цpostMethod
HttpClient httpClient = new HttpClient();
try {
httpClient.executeMethod(postMethod);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
]]> 鍏充簬Java鍛戒護(hù)琛屼氦浜掓柟寮?/title> http://m.tkk7.com/nighty/archive/2008/05/23/202314.html瀵掓綰?/dc:creator>瀵掓綰?/author>Fri, 23 May 2008 01:41:00 GMT http://m.tkk7.com/nighty/archive/2008/05/23/202314.html http://m.tkk7.com/nighty/comments/202314.html http://m.tkk7.com/nighty/archive/2008/05/23/202314.html#Feedback 1 http://m.tkk7.com/nighty/comments/commentRss/202314.html http://m.tkk7.com/nighty/services/trackbacks/202314.html
鍛戒護(hù)琛屼氦浜掓槸浼犵粺鐨勪氦浜掓柟寮忥紝濡傛灉紼嬪簭鏈夋椂鍊欓渶瑕佸湪Unix鎴栨槸Linux絳夌郴緇熶笂榪愬姩鏃訛紝浠ヨ繖縐嶆柟寮忓嚭鐜扮殑鍙兘鎬у氨姣旇緝澶с傚懡浠よ鍖呮嫭
杈撳叆鍜屽洖鏄鵑棶棰橈紝涓鑸槸浠ヨ緇撴潫錛屾垨鏄互鏌愪釜緇撴潫絎︿負(fù)緇堝懡浠ょ粓姝㈡爣璇嗐係ystem.out 鍜孲ystem.err灝辯敤浜庢爣鍑嗙殑杈撳嚭鍜岄敊璇緭鍑猴紝System.in鐢ㄤ簬鏍囧噯鐨勮緭鍏ユ帴鍙楋紝涓鑸儏鍐典笅閮芥槸鎸囬敭鐩樸?br />
濡傛灉鎺ュ彈鍙傛暟杈撳叆錛屼竴鑸殑紼嬪簭緇撴瀯濡備笅錛?br />
BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
System.out.println( " ==Please input password==錛?/span>" );
String pass = in.readLine();
杈撳叆鐨勬椂鍊欐樉紺哄睆鑷姩榪涜杈撳叆鍥炴樉銆傝繖涓椂鍊欏鏋滈亣鍒拌緭鍏ュ瘑鐮佺瓑鏁忔劅鏁版嵁鐨勬椂鍊欙紝灝辨棤娉曠敤*鎴栨槸#榪欐牱鐨勭鍙瘋繘琛屽洖鏄懼睆钄斤紝瀹規(guī)槗鏆撮湶瀹夊叏闂銆?br />
瑙e喅鐨勫彲鑳芥兂娉曪細(xì)
1. 閫氳繃鐩戝惉閿洏浜嬩歡錛屽杈撳叆鐨勫洖鏄捐繘琛屾埅鑾峰彇錛屾妸鍥炴樉榪涜灞忚斀錛屼絾鏄洃鍚櫒濡備綍鐭ラ亾浣曟椂鏄緭鍏ュ瘑鐮侊紝浣曟椂鏄緭鍏ユ櫘閫氭暟鎹紵姣旇緝闅句互鎺у埗錛岃屼笖榪欑鐩戝惉搴旇鏄嚎紼嬪寲鐨勶紝鍙兘浼?xì)瀛樺湪涓浜涙剰鎯充笉鍒扮殑闂銆?br />
2. 濡傛灉鐢ㄧ函Java闅句互瀹炵幇錛岄偅涔堟槸鍚﹀彲浠ヤ嬌鐢ㄥ叾瀹冭璦鐨勫姛鑳借繘琛岃ˉ鍏咃紝姣斿JNI錛屾垨鏄疻indows涓嬮潰鐨凞os鑴氭湰錛孡inux騫沖彴鐨凷hell鑴氭湰鏉ヨ繘琛岃ˉ鍏呫備笉榪囪繖鏍峰氨涓嶅お騫沖彴鏃犲叧浜嗐?br />
3. 鍙兘sun鍙戠幇浜嗚繖涓笉瓚充箣澶勶紝浠?.6鐗堟湰寮濮嬶紝澧炲姞浜嗕竴涓猨ava.io.Console綾伙紝浠h〃涓庡綋鍓?Java 铏氭嫙鏈哄叧鑱旂殑鍩轟簬瀛楃鐨勬帶鍒跺彴璁懼錛岃繖涓狢onsole鏄鍘熸潵System.in榪欑涓嶈凍鐨勮ˉ鍏咃紝鎻愪緵浜嗗儚readPassword ()
絳夎繖鏍風(fēng)殑瀹炵敤鏂規(guī)硶錛屽叿浣撹鍙傝傾PI鏂囨。錛屽氨鏄笓闂ㄧ敤浜庡鏁忔劅淇℃伅鐨勮鍙栥備絾鏄繖鏄熀浜嶫ava1.6鐨勶紝濡傛灉鏈変簺鍦烘櫙鍙楅檺鍒訛紝涓嶈兘浣跨敤1.6錛岄偅涔堣繕鏄棤娉曡В鍐充笂闈㈢殑闂銆傚悗鏉ユ煡闃呬簡涓涓婥onsole綾葷殑瀹炵幇鏂瑰紡錛屾兂鐩存帴鎶婂畠鐨勫疄鐜版柟寮忕Щ妞嶅埌1.4.xx涓婃槸姣旇緝闅劇殑錛屽洜涓虹敤鍒頒簡涓浜涢珮鐗堟湰鐨勬柊鐗規(guī)с備嬌鐢–onsole瑕佹敞鎰忕殑鏄細(xì)铏氭嫙鏈烘槸鍚﹀叿鏈夋帶鍒跺彴鍙栧喅浜庡簳灞傚鉤鍙幫紝榪樺彇鍐充簬璋冪敤铏氭嫙鏈虹殑鏂瑰紡銆傚鏋滆櫄鎷熸満浠庝竴涓氦浜掑紡鍛戒護(hù)琛屽紑濮嬪惎鍔紝涓旀病鏈夐噸瀹氬悜鏍囧噯杈撳叆鍜岃緭鍑烘祦錛岄偅涔堝叾鎺у埗鍙板皢瀛樺湪錛屽茍涓旈氬父榪炴帴鍒伴敭鐩樺茍浠庤櫄鎷熸満鍚姩鐨勫湴鏂規(guī)樉紺恒傚鏋滆櫄鎷熸満鏄嚜鍔ㄥ惎鍔ㄧ殑錛堜緥濡傦紝鐢卞悗鍙頒綔涓氳皟搴︾▼搴忓惎鍔級(jí)錛岄偅涔堝畠閫氬父娌℃湁鎺у埗鍙般傚鏋滀綘鍦‥clipse閲岄潰鍚姩紼嬪簭璋冪敤Console錛岄偅涔堥氬父鏄病鏈夋帶鍒跺彴錛岃繕鏄緱浠庡閮ㄧ殑鍛戒護(hù)琛屾柟寮忔墠鑳借皟鐢ㄥ緱鍒般?br />
鎬諱綋鎯充竴涓嬶紝鎰熻搴旇榪樻槸浠庣2鐐瑰嚭鍙戯紝鐗虹壊鎺変竴鐐歸氱敤鎬э紝榪欐牱鎵嶈兘婊¤凍榪欑鍔熻兘闇姹傘?
]]>
主站蜘蛛池模板:
久久精品熟女亚洲av麻豆
|
亚洲精品无码一区二区 |
亚洲成av人片在线看片 |
精品无码一区二区三区亚洲桃色
|
国产成人精品久久亚洲高清不卡 |
国产免费人成视频在线观看 |
免费看无码自慰一区二区 |
毛片免费在线视频 |
成熟女人牲交片免费观看视频 |
免费高清资源黄网站在线观看 |
日本二区免费一片黄2019 |
尤物永久免费AV无码网站 |
国产成人免费福利网站 |
国产乱人免费视频 |
亚洲第一成人影院 |
在线亚洲人成电影网站色www |
国产亚洲精久久久久久无码 |
久久精品国产精品亚洲艾 |
亚洲三级电影网址 |
亚洲国产中文在线视频 |
亚洲人成色99999在线观看 |
激情无码亚洲一区二区三区 |
日韩久久无码免费毛片软件
|
亚洲一级片在线观看 |
亚洲日韩中文字幕一区 |
亚洲第一se情网站 |
www在线观看免费视频 |
久久久久久免费一区二区三区 |
88av免费观看 |
毛片大全免费观看 |
免费a级毛片在线观看 |
丁香五月亚洲综合深深爱 |
亚洲成在人天堂在线 |
亚洲国产中文在线视频 |
色偷偷噜噜噜亚洲男人 |
亚洲黄片手机免费观看 |
十八禁无码免费网站 |
成熟女人特级毛片www免费 |
亚洲欧洲一区二区三区 |
亚洲爱情岛论坛永久 |
亚洲一区二区三区高清视频 |