commons-beanutils緇勪歡鏄疛akarta Commons欏圭洰緇勪腑鐨勪竴涓紝鍙互鍒癑akarta瀹樼綉涓婂幓涓嬭澆銆傛垜浠粖澶╄璁虹殑涓昏灝辨槸commons-beanutils涓殑BeanUtils榪欎釜綾伙紝榪欎釜綾婚兘鏄潤鎬佹柟娉曪紝鍙互寰堟柟渚跨殑鎿嶇旱鍚勪釜JavaBean瀵硅薄錛屽寘鎷幏鍙栧睘鎬с佽緗睘鎬х瓑錛屾垜浠互渚嬪瓙鏉ヨ繘琛岃鏄庛?/p>
鍋囪鏈夊涓嬩竴涓狫avaBean瀵硅薄錛?/p>
public TestBean
{
private String stringValue;
private int intValue;
public void setStringValue(String value)
{
this.stringValue = value;
}
public String getStringValue()
{
return this.stringValue;
}
public void setIntValue(int value)
{
this.intValue = value;
}
public int getIntValue()
{
return this.intValue;
}
}
閭d箞鎴戜滑灝卞彲浠ヤ嬌鐢˙eanUtils鏉ュ鍏惰繘琛岃緗煎拰鑾峰彇鍊間簡銆傚涓嬶細
TestBean tb = new TestBean();
BeanUtils.setProperty(tb, "stringValue", "hello world!");
BeanUtils.setProperty(tb, "intValue", 123);
閫氳繃涓婅堪鐨勮鍙ユ垜浠氨鍙互緇欐柊new鐨勫璞¤緗袱涓睘鎬т簡錛屾敞鎰忓叾涓涓涓弬鏁板氨鏄垜浠殑灞炴у悕縐幫紝榪欓噷涔熸槸鎴戜滑鍦ㄤ嬌鐢ㄨ繖涓伐鍏風殑鏃跺欐渶闇瑕佹敞鎰忕殑鍦版柟銆傝繖涓睘鎬у悕縐板氨鏄垜浠殑TestBean涓殑getXXX鏂規硶涓殑XXX錛屾瘮濡俫etStringValue涓叾灞炴у悕縐板氨鏄痵tringValue錛屽湪浣跨敤灞炴у悕縐扮殑鏃跺欙紝闄や簡XXX涓殑絎竴涓瓧姣嶄笉闇瑕佸ぇ灝忓啓涔嬪錛屽叾浠栫殑閮ㄥ垎鏄渶瑕佷弗鏍煎尯鍒嗗ぇ灝忓啓鐨勶紝榪欎篃鏄疛avaBean鐨勮鑼冦?font color="#990000">榪欓噷鏈変竴鐐歸渶瑕佺壒鍒敞鎰忕殑灝辨槸錛屽鏋滃睘鎬у悕縐頒腑絎竴涓崟璇嶏紙鎴戜滑鐣屽畾鐨勶級鍙湁涓涓瓧姣嶇殑璇濓紝閭d箞鍏跺睘鎬у悕縐板繀欏誨ぇ鍐欙紒鎴戜滑鍙互鐪嬭繖鏍蜂竴涓緥瀛愶細
鎴戜滑緇橳estBean鍔犲涓嬩竴涓睘鎬э細
……
public void setTName(String name)
{
this.name = name;
}
public void getTName()
{
return this.name;
}
……
閭d箞鍦ㄤ嬌鐢˙eanUtils榪涜灞炴ц祴鍊肩殑鏃跺欙紝濡傛灉浣犺繖鏍峰啓錛?/p>
BeanUtils.setProperty(tb, "tName", "hello");
閭d箞灝變細琚姏鍑轟竴涓紓甯革紝琛ㄧず榪欎釜灞炴ф壘涓嶅埌錛?strong>鍥犱負鎸夌収JavaBean鐨勮鑼冿紝灞炴у悕縐頒腑濡傛灉鏈夊涓崟璇嶏紝鍒欐瘡涓涓崟璇嶇殑棣栧瓧姣嶈澶у啓錛?/strong>榪欓噷BeanUtils灝變細璁や負灞炴Name鏄袱涓崟璇嶏紝鍒嗗埆鏄疶鍜孨ame錛屾墍浠ュ彇灞炴х殑鏃跺欑涓涓瓧姣嶅繀欏昏澶у啓錛屾墍浠ュ叾灞炴у氨搴旇鏄紱TName錛岄偅涔堟垜浠氨搴旇濡備笅鍐欐搷浣滆鍙ワ細
BeanUtils.setProperty(tb, "TName", "hello");
榪欐牱鍐欐墠鏄紜殑銆傞偅涔堟垜浠潵鐪嬪湪B/S緇撴瀯鐨勭▼搴忎腑錛屽浣曞皢琛ㄥ崟鍩熺殑鍙傛暟錛堜笉涓瀹氭槸琛ㄥ崟鍩燂紝鏄弬鏁伴兘鍙互錛夎漿鎹㈡垚涓涓狫avaBean瀵硅薄錛屾垜浠互涓婇潰鐨凚ean涓轟緥瀛愶紝鎴戜滑鍦ㄩ〉闈笂榪涜緙栧啓濡備笅錛?/p>
……
<form name="form1" action="/getbean.jsp">
瀛楃涓插鹼細<input type="text" name="stringValue" /><br/>
鏁板瓧鍊鹼細<input type="text" name="intValue" /><br/>
</form>
……
鐒跺悗鎴戜滑鍦ㄦ湇鍔″櫒绔繘琛岀紪鍐欏涓嬩唬鐮佹潵鑾峰彇鍙傛暟錛屽茍緇勮鎴愪竴涓猅estBean瀵硅薄錛屼唬鐮佸涓嬶細
……
TestBean tb = new TestBean();
BeanUtils.populate(tb, request.getParameterMap());
// 浣跨敤BeanUtils宸ュ叿綾繪潵鑾峰彇瀵硅薄鐨勫睘鎬?br />
System.out.println(BeanUtils.getProperty("stringValue"));
System.out.print(BeanUtils.getProperty("intValue"));
// 鐩存帴鑾峰彇瀵硅薄鐨勫睘鎬?br />
System.out.println(tb.getStringValue());
System.out.println(tb.getIntValue());
……
鎴戜滑娉ㄦ剰鍒幫紝鍦ㄨ〃鍗曞尯鍩熶腑緙栧啓鐨勫嚑涓緭鍏ユ鐨勫悕縐幫紙綰㈣壊鏍囪瘑鐨勯儴鍒嗭級灝辨槸鎴戜滑鐨凾estBean瀵硅薄鐨勫睘鎬у悕縐幫紝鐒跺悗鏈嶅姟鍣ㄧ鐨勪唬鐮佷腑錛屾垜浠鍏堜嬌鐢╮equest.getParameterMap()鏉ヨ幏鍙栨彁浜ょ殑鍙傛暟錛屽茍杞崲鎴愪竴涓猰ap瀵硅薄瀛樺偍錛堥敭鏄弬鏁板悕縐幫紝鍊兼槸鎻愪氦鐨勫鹼級錛岀劧鍚庢垜浠嬌鐢˙eanUtils鐨刾opulate鏂規硶鏉ヨ繘琛岃祴鍊箋傞氳繃鎵撳嵃鍚庯紝鎴戜滑鍙互鐪嬪埌鎴戜滑杈撳叆鐨勫艱鎴愬姛鐨勮緗埌瀵硅薄涓幓浜嗭紝鍙互鐪嬪埌綆鍗曠殑涓よ浠g爜灝卞彲浠ユ悶瀹氬弬鏁板埌瀵硅薄鐨勬暟鎹粦瀹氬伐浣滐紝濡傛灉涓涓璞℃湁鍗佸嚑涓敋鑷沖嚑鍗佷釜鍙傛暟灞炴х殑璇濓紝閭d箞榪欐牱鐨勬柟寮忓皢鏄潪甯哥畝渚跨殑錛岃嚦灝戝彲浠ュ皯鍐欏崄鍑犺鐢氳嚦鍑犲崄琛岀殑浠g爜銆?/p>
鍙互鐪嬪埌鍒╃敤BeanUtils榪欎釜宸ュ叿綾誨彲浠ュ緢鏂逛究鐨勮繘琛孞avaBean鐨勫睘鎬ф搷浣滃拰request鐨勫弬鏁板埌JavaBean鐨勫睘鎬х粦瀹氭搷浣溿傚叾浠栫殑鍔熻兘澶у灝卞彲浠ュ弬鐪嬪畠鐨凙PI鏂囨。浜?br />
鍏跺疄Jakarta Commons欏圭洰緇勪腑榪樻湁寰堝瀹炵敤鐨勫伐鍏風被,濡?common-io,common-lang,common-logging,common-pool絳夌瓑.
鍒╃敤javamail鍙戦侀偖浠訛紝浣犻渶瑕佸鍏ュ寘mail.jar鍜宎ctivation.jar榪欎袱涓寘 錛屽惁鍒欐槸娌℃硶鍙戦偖浠剁殑 錛屼笅杈歸厤緗枃浠墮噷緇胯壊琛屾樉紺虹殑灝辨槸鍙戠粰涓や釜鎺ユ敹鑰卆c鍜宎e銆?/font>
榪欓噷浼氬嚭鐜頒腑鏂囦貢鐮侀棶棰橈紝涓昏鏈変袱鏂歸潰鐨勪貢鐮侊紝涓鏄爣棰樹貢鐮侊紱浜屾槸姝f枃涔辯爜銆備笅杈瑰叿浣撹鏄庤繖涓ょ涔辯爜鐨勮В鍐蟲柟妗堛?
涓銆?鏍囬涔辯爜
Log4J鏃ュ織閭歡鐨勬爣棰樺湪閰嶇疆鏂囦歡log4j.properties閲岃瀹氾紝濡備笅
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=ab@163.com
log4j.appender.MAIL.SMTPHost=smtp@163.com
log4j.appender.MAIL.Subject= Log4J鎻愰啋鎮細緋葷粺鍙戠敓浜嗕弗閲嶉敊璇?/font>
log4j.appender.MAIL.To=ac@163.com,ae@163.com
log4j.appender.MAIL.layout=com.sun.DefineLayOut
log4j.appender.MAIL.layout.LocationInfo=true
鐏拌壊鐨勮灝辨槸鏍囬錛宭og4J閰嶇疆鏂囦歡榛樿鐨勮鍙栨柟寮忔槸ISO-88591錛岄亣鍒頒腑鏂囦細鍑虹幇涔辯爜錛屾垜浠彲浠ユ妸榪欎釜閰嶇疆鏂囦歡log4j.properties鐢╦dk鐨勫伐鍏穘ative2asii杞崲涓涓嬬紪鐮佹柟寮忋?
鍛戒護錛歯ative2asii log4j.properties log4jxx.properties
鎶婅繖涓猯og4jxx.properties鏀瑰悕涓簂og4j.properties鍙栦唬鍘熸潵鐨刲og4j.properties灝眔k浜嗐?
鐏拌壊琛岄噸鏂扮紪鐮佸悗鏄細
log4j.appender.MAIL.Subject=Log4J\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8bef
浜屻?姝f枃涔辯爜
姝f枃涔辯爜錛岃В鍐充篃姣旇緝綆鍗曘傞槄璇籐og4J鐨勬簮鐮佺被SMTPAppender錛屾垜浠彲浠ュ彂鐜皊endBuffer()鏂規硶涓湁榪欐牱涓鍙ワ細
part.setContent(sbuf.toString(), layout.getContentType());
鎴戜滑緇х畫榪借釜鍙戠幇layout灝辨槸閰嶇疆鏂囦歡閲岀殑layout灞炴у搴旂殑甯冨眬妯″紡銆備絾鏄繖浜涘竷灞妯″紡閮芥槸緇ф壙鑷狶ayout錛岃宑ontentType鏄彧鍙氳繃getContentType鏂規硶鍙栧緱錛屼笉鑳戒慨鏀廣傛墍鏈夌殑甯冨眬妯″紡getContentType鏂規硶榪斿洖鐨勯兘鏄?#8221;text/plain”錛?
涓哄鐞嗕腑鏂囦貢鐮侊紝鎴戜滑鍙互鍐欎竴涓竷灞妯″紡銆傚鏋滀綘瑕佷嬌鐢℉TMLLayout錛屾垜浠氨鍐欎竴涓狧TMLLayout鐨勫瓙綾伙紝瑕嗙洊HTMLLayout鐨刧etContentType鏂規硶鍗沖彲銆傚亣濡傛垜瑕佺敤org.apache.log4j.HTMLLayout銆傛垜浠氨鍙互鍐欎竴涓狣efineLayOut綾伙紝浠g爜濡備笅錛?
package com.sun;
import org.apache.log4j.HTMLLayout;
public class DefineLayOut extends HTMLLayout{
public String getContentType() {
return "text/html;charset=GBK";
}
}
瀵瑰簲鐨勯厤緗枃浠惰緗榛勮壊琛屾墍紺恒?nbsp;
鍛靛懙,瑙夊緱絎簩鐐圭殑鎬濊礬涓嶉敊,鍗寵瀛︿細鎬庢牱鏀瑰紑婧愮殑涓滆タ,浠ラ傚悎鑷凡鎵闇.