锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一本大道在线,99热99re6国产在线播放,中文字幕一区二区三区久久网站http://www.aygfsteel.com/dont-bird-me/articles/struts.htmllalalalaThu, 13 Dec 2007 16:44:00 GMThttp://www.aygfsteel.com/dont-bird-me/articles/struts.htmlhttp://www.aygfsteel.com/dont-bird-me/comments/167631.htmlhttp://www.aygfsteel.com/dont-bird-me/articles/struts.html#Feedback0http://www.aygfsteel.com/dont-bird-me/comments/commentRss/167631.htmlhttp://www.aygfsteel.com/dont-bird-me/services/trackbacks/167631.html鏈枃鎸夌収1.鏋勯犲嚱鏁?>2.init()->3.do*()->4.destroy()鐨勯『搴忥紝瑙f瀽ActionServlet鐨勫伐浣滃師鐞嗐?br /> init()鐨勫垵濮嬪寲宸ヤ綔鍒嗕負涓楠よ繘琛岋細
1.initInternal()璧勬簮鏂囦歡鐨勫垵濮嬪寲

protected String internalName = "org.apache.struts.action.ActionResources";
protected void initInternal(){
internal 
= MessageResources.getMessageResources(internalName);//鍒濆鍖栬祫婧愭枃浠朵俊鎭紝閫氳繃宸ュ巶妯″紡鍙栧緱涓涓崟渚嬬殑璧勬簮
}


internalName涓巌nitInternal()閮芥槸protected鎵浠ュ彲浠ヨ瀛愮被閲嶈澆銆備慨鏀箂truts榛樿鐨勮祫婧愭枃浠朵俊鎭?br /> 2.initOther()鏍規嵁web.xml鐨勯厤緗弬鏁版墽琛屼笉鍚岀殑鍒濆鍖?1.璁劇疆struts閰嶇疆鏂囦歡璺緞2.convertNull

protected void initOther()throws ServletException {
        String value;
        value 
= getServletConfig().getInitParameter("config");
        
if (value != null{
            config 
= value; //璁劇疆struts閰嶇疆鏂囦歡璺緞
        }
     
        value 
= getServletConfig().getInitParameter("convertNull");
        
if ("true".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value)
            
|| "on".equalsIgnoreCase(value) || "y".equalsIgnoreCase(value)
            
|| "1".equalsIgnoreCase(value)) {
            convertNull 
= true;
        }

        
if (convertNull) //濡傛灉convertNull涓簍rue\on\yes\y\1鎵ц
            ConvertUtils.deregister();
            ConvertUtils.register(
new BigDecimalConverter(null),BigDecimal.class);
           ……
        }

    }

  
3.initServlet()瑙f瀽servletName,url-Pattern銆傚畼鏂箂truts鐨剋eb.xml錛歴ervletName=action,urlPattern=/*.do

 

protected void initServlet()throws ServletException {         
        
this.servletName = getServletConfig().getServletName();//鍙栧緱璁劇疆servletName
        /*digester涓昏鏄疄鐜板xml鐨勮闂紝璁稿鍔熻兘寮哄ぇ鐨勫父鐢ㄦ搷浣滈兘宸茬粡灝佽浜嗚搗鏉ャ?/span>*/
        Digester digester 
= new Digester();
        digester.push(
this);
        digester.setNamespaceAware(
true);
        digester.setValidating(
false);
        
for (int i = 0; i < registrations.length; i += 2{
            URL url 
= this.getClass().getResource(registrations[i + 1]);
            
if (url != null{
                digester.register(registrations[i], url.toString());
            }

        }

        
/*浠ヤ笅3鍙ョ殑鎰忔濇槸褰撻亣鍒皐eb-app/servlet-mapping鏃舵墽琛宎ddServletMapping鍑芥暟(涓嬮潰鏈夎鍑芥暟鐨勬簮鐮?錛岃繖涓柟娉曟湁涓や釜鍙傛暟錛岀涓涓槸web-app/servlet-mapping/servlet-name鏍囩閲岀殑錛岀浜屼釜鏄痺eb-app/servlet-mapping/url-pattern鏍囩閲岀殑.parse (input)寮濮嬭В鏋愩傚疄闄呬笂榪欐闄岀敓鐨勪唬鐮佸彧鏄墽琛屼簡addServletMapping(servlet-name,url-pattern);servlet-name,url-pattern鍒嗗埆浠?WEB-INF/web.xml涓彇寰?/span>*/
        digester.addCallMethod(
"web-app/servlet-mapping""addServletMapping"2);
        digester.addCallParam(
"web-app/servlet-mapping/servlet-name"0);
        digester.addCallParam(
"web-app/servlet-mapping/url-pattern"1);
        InputStream input 
=
            getServletContext().getResourceAsStream(
"/WEB-INF/web.xml"); 
        digester.parse(input);        
        
if (servletMapping != null{
            getServletContext().setAttribute(Globals.SERVLET_KEY, servletMapping);
        }

    }

    

 

/*鍦╥nitServlet()涓璋冪敤*/
    
public void addServletMapping(String servletName, String urlPattern) {
        
if (servletName == null{
            
return;
        }

        
/*涓鑸岃█servletName=action,urlPattern=/*.do*/
        
if (servletName.equals(this.servletName)) {
            
if (log.isDebugEnabled()) {
                log.debug(
"Process servletName=" + servletName
                    
+ ", urlPattern=" + urlPattern);
            }


            
this.servletMapping = urlPattern;
        }

    }

 

(鍒濆鍖栧伐浣滆繕鏈畬鎴?寰呯畫)

lala 2007-12-14 00:44 鍙戣〃璇勮
]]>
ActionServlet(1)http://www.aygfsteel.com/dont-bird-me/articles/ActionServlet1.htmllalalalaWed, 12 Dec 2007 17:18:00 GMThttp://www.aygfsteel.com/dont-bird-me/articles/ActionServlet1.htmlhttp://www.aygfsteel.com/dont-bird-me/comments/167365.htmlhttp://www.aygfsteel.com/dont-bird-me/articles/ActionServlet1.html#Feedback0http://www.aygfsteel.com/dont-bird-me/comments/commentRss/167365.htmlhttp://www.aygfsteel.com/dont-bird-me/services/trackbacks/167365.html     鍦ㄩ」鐩紑鍙戜腑錛孉ctionServlet鐨勫嚭鐜版渶灝戝彧闇瑕?嬈★紝渚挎槸鍦╳eb.xml涓?br />     
<servlet>
        
<servlet-name>action</servlet-name>
        
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>         
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>action</servlet-name>
        
<url-pattern>*.do</url-pattern>
    
</servlet-mapping>

    涓嶇煡閬撹澶嶅埗浜嗗灝戦亶鐨勪竴孌典唬鐮侊紝浠婂ぉ鎴戠粓浜庣嫚涓嬪績瑕佹潵鎻紑浠栫殑縐樺瘑錛?br />     ActionServlet緇ф壙浜嶩ttpServlet錛屾墍浠ュ彲浠ュ畨鍏ㄧ殑鏀懼湪web.xml鐨?lt;/servlet-clss>鏍囩閲屻傚湪鍘熷鐨刯ava web寮鍙戜腑錛孒ttpServlet鐨刬nit()\destroy() \service() \do*()鍑芥暟緇忓父闇瑕佹牴鎹笟鍔$戶鎵垮疄鐜般傚悓鏍風殑錛屽湪ActionServlet閲岋紝瀹冪戶鎵垮疄鐜頒簡榪欏嚑涓柟娉曪紝浠庤繖涓剰涔変笂璁睞ctionServlet涓庡師濮媤eb寮鍙戜腑鐨剆ervlet娌℃湁浠諱綍鐨勫尯鍒?br />      ActionServlet灝辨槸涓涓狧ttpServlet鐨勭壒孌婂疄鐜幫紝鎵浠ヨ鐪熸浜嗚ВActionServlet嫻佺▼蹇呴』鐭ラ亾HttpServlet鐨勬祦紼嬨?br />      HttpServlet鐨勬祦紼嬪簲璇ュ寘鎷細1.鏋勯犲嚱鏁?>2.init()->3.do*()->4.destroy()銆?br />      init()鐨勬墽琛屾椂闂存湁涓ょ鏂瑰紡:1.Tomcat鍚姩鏃?.鍦ㄦ彁浜ゅ埌璇ervlet鏃?錛堝彲浠ラ氳繃<load-on-startup>榪涜璁劇疆錛?br />    
     鍚屾牱鐨勫湪ActionServlet涓紝涔熸槸鐢辮繖鍑犱釜鍑芥暟鏉ユ槸瀹炵幇web鏈嶅姟鐨勶紝鍙槸瀹冩墍瀹炵幇鐨勫茍涓嶆槸涓氬姟鏈嶅姟浠g爜錛岃屾槸鎺у埗浠g爜銆?nbsp; 
     

lala 2007-12-13 01:18 鍙戣〃璇勮
]]>
涓涓猄ingleton鐨勯棶棰?!help!!http://www.aygfsteel.com/dont-bird-me/articles/SingletonMemberField.htmllalalalaFri, 07 Dec 2007 16:56:00 GMThttp://www.aygfsteel.com/dont-bird-me/articles/SingletonMemberField.htmlhttp://www.aygfsteel.com/dont-bird-me/comments/166181.htmlhttp://www.aygfsteel.com/dont-bird-me/articles/SingletonMemberField.html#Feedback3http://www.aygfsteel.com/dont-bird-me/comments/commentRss/166181.htmlhttp://www.aygfsteel.com/dont-bird-me/services/trackbacks/166181.html       鏈榪戝湪鍋氫竴浜涗唬鐮佸畨鍏ㄦф鏌ワ紝浣跨敤浜咶ortify銆傚彂鐜頒簡涓浜涙浘緇忓紩浠ヤ負璞殑浠g爜鏃㈢劧浼氬嚭鐜伴珮鍗辯殑閿欒銆傚笇鏈涘悇浣嶈揪浜虹粰浜堝府鍔┿?br />          璁捐鍒濊》:鍏變韓WebApplicationContext,閫氳繃getBean(String beanName)鍙栧緱瀵瑰簲鐨刡ean澶勭悊鐩稿簲鐨勪笟鍔¢昏緫銆?
public class BaseAction extends Action {
    
private WebApplicationContext wac;
    
protected ServletContext context;    
    
public void setServlet(ActionServlet actionServlet) {
        
super.setServlet(actionServlet);
        context 
= actionServlet.getServletContext();
        wac 
= WebApplicationContextUtils.getRequiredWebApplicationContext(context);
    }


    
protected Object getBean(String beanName) {
        
return wac.getBean(beanName);
    }

}
      楂樺嵄閿欒浠g爜錛?/span>        
context = actionServlet.getServletContext();
        wac 
= WebApplicationContextUtils.getRequiredWebApplicationContext(context);
         閿欒鍘熷洜鍒嗘瀽錛欱aseAction緇ф壙鑷狝ction,鍗曚緥瀹炵幇銆傝綾誨惈鏈夊睘鎬э細wac涓巆ontext錛屽湪澶氱嚎紼嬬幆澧冧笅涓嶈兘淇濊瘉榪欎袱涓睘鎬х殑鍚堢悊閫昏緫銆備簬鏄帀鍏ヤ簡涓涓崟渚嬫ā寮忕殑闄烽槺銆傦紙璇峰悇浣嶈揪浜哄畬鍠勶級
         瑙e喅鏂規硶錛歫don(banq)緇欐垜鐨勫洖澶?nbsp;         
       
 banq:鍐欑殑鏂規硶鏄珮鍗憋紝浣嗘槸鐪嬩綘鐨勬柟娉曞唴瀹癸紝鍒欐病鏈夊叧緋匯?br />
浣犵殑鏂規硶鍐呭鏄幏寰椾竴涓猈eb欏圭洰鐨勪竴涓崟渚嬶紝瀹為檯灝辨槸Spring瀹瑰櫒錛岃屼笖澶ч儴鍒嗘槸璇伙紝鑰屼笉鏄鍐欏茍鍔犮?br />
鍗曚緥闄烽槺鎴戝凡緇忓湪浠ュ墠甯栧瓙涓浜嗭紝鍙湁鍦ㄥ崟渚?鍐?鍚屾絳夋搷浣滀笅鎵嶅彲鑳芥閿侊紝鍥犱負浠g爜涓嶅彲鎺фэ紝浠婂ぉ浣犳敞鎰忔病榪欎箞鍋氾紝涓嶄唬琛ㄥ叾浠栨棤鐭ョ殑浜轟笉榪欎箞鍋氾紝鎵浠ワ紝榪欑singlton浼氳涓ヨ皚鐨勫伐鍏瘋涓烘槸楂樺嵄錛岃繖鏄紜殑銆?/span>
 ME:璋㈣阿 banq!
濡傛灉闇瑕佹秷闄よ繖孌甸珮鍗變唬鐮?闇瑕佸浣曢噸鏋?
鍥犱負鍙槸瀛樺湪璇繪搷浣?鎴戞槸鍚﹀彲浠ユ妸wac涓巆ontext瀹氫箟涓簊tatic(榪欐牱宸ュ叿涓嶄細鎶ラ敊)

璇烽棶榪欐牱鏀逛細涓嶄細鏈夐棶棰?
  banq:涓嶈兘鐢╯tatic錛岃繖鏍?a title="??" target="_blank">Spring瀹瑰櫒涓墍鏈夎祫婧愰兘涓嶈兘闅忕潃浣犵殑WEB欏圭洰娑堝け鑰屾秷澶便?br />
涓昏闂鍦ㄤ簬浣犵殑setServlet(ActionServlet actionServlet)榪欎釜鏂規硶錛岃繖鍏跺疄鏄竴涓垵濮嬪寲宸ヤ綔錛岃瘯楠屽湪BaseAction鐨勬瀯閫犳柟娉曚腑棣栧厛瀹炵幇錛岃繖鏍瘋〃紺烘湁鍓嶆湁鍚庯紝鍙兘涓嶄細鎶ラ珮鍗遍敊璇?br />
瀹炲湪涓嶈錛屽仛涓涓噿鍔犺澆鐨勬柟娉曪紝鍦ㄨ繖涓柟娉曚腑錛屾鏌ヤ竴涓媤ac鏄惁涓虹┖錛屽鏋滀負錛屽氨榪涜鍒濆鍖栵紝涓嶄負絀猴紝灝辯洿鎺ヨ繑鍥瀢ac鍊箋?
鍘婚櫎setServlet鏂規硶錛屽湪getBean鍔犲叆錛屽涓嬶紝濡傛灉榪樹笉琛岋紝灝辨瘡嬈¤佽佸疄瀹炵殑鐢╓ebApplicationContextUtils鑾峰緱Spring瀹炰緥錛?br />
protected Object getBean(String beanName) {
if(wac==null){
context 
= actionServlet.getServletContext();
wac 
= WebApplicationContextUtils.getRequiredWebApplicationContext(context);
}


return wac.getBean(beanName);
}


                 


lala 2007-12-08 00:56 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 定安县| 临清市| 思南县| 永川市| 霞浦县| 吉木乃县| 昂仁县| 红桥区| 蕲春县| 屏东县| 商丘市| 昭苏县| 农安县| 五河县| 蓬安县| 田东县| 巴东县| 临朐县| 章丘市| 友谊县| 天祝| 会东县| 大渡口区| 汤阴县| 高唐县| 花莲市| 鹤山市| 阿坝| 柘荣县| 九龙城区| 金华市| 运城市| 龙海市| 乌鲁木齐市| 大英县| 达孜县| 肥乡县| 农安县| 新沂市| 金乡县| 城口县|