锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成人a在线观看,亚洲成a人片在线观,99久久亚洲综合精品成人网http://m.tkk7.com/ktoo/category/24712.htmlzh-cnSun, 17 Feb 2008 20:00:44 GMTSun, 17 Feb 2008 20:00:44 GMT60Struts2+Hibernate涓叧闂璖ession鐨刦ilter闂http://m.tkk7.com/ktoo/archive/2008/02/17/180226.htmlKTOOKTOOSat, 16 Feb 2008 17:37:00 GMThttp://m.tkk7.com/ktoo/archive/2008/02/17/180226.htmlhttp://m.tkk7.com/ktoo/comments/180226.htmlhttp://m.tkk7.com/ktoo/archive/2008/02/17/180226.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/180226.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/180226.html鐢⊿truts2+Hibernate寮鍙慦eb紼嬪簭
鍙戠幇緗戠珯鑰佹槸涓鍔ㄤ笉鍔?鍦―AO涓敤  Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
鏌ョ湅浜嗙粺璁$粨鏋?鍙戠幇鎵撳紑50涓猄ession鍙湁20涓叧闂簡.
鐪嬬粨鏋勪篃娌℃湁浠涔堥棶棰?鎴戜嬌鐢ㄤ袱涓猅hreadLocal 瀛樻斁Session 鍜孴ransaction,鍐嶇敤涓涓狥ilter鍘誨叧闂?鍚勪釜閰嶇疆琛ㄩ潰涓婁篃鏄病鏈夐棶棰?鍙槸鍋氭祴璇曠殑鏃跺欐墠鍙戠幇鍏抽棴Session鐨凢ilter鏍規湰灝辨槸娌℃湁榪愯,鎴栨槸鏈夋椂榪愯,鏈夋椂涓嶈繍琛?
浠旂粏鎯充簡鎯?璋冩暣浜嗕竴涓媠essionclosefilter鍜孲truts2鐨刦ilter鐨勯『搴忓涓?緇堜簬鍙互鍏抽棴浜?/p>

 <filter>
        <filter-name>HibernateSessionCloseFiler</filter-name>
        <filter-class>com.hitecin.struts2.filter.HibernateSessionClose</filter-class>
    </filter>
    <filter>
        <filter-name>struts-cleanup</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
    </filter>
      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

      <filter-mapping>
        <filter-name>HibernateSessionCloseFiler</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
     <filter-mapping>
         <filter-name>struts-cleanup</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>



KTOO 2008-02-17 01:37 鍙戣〃璇勮
]]>
Struts2涓嚭閿?/title><link>http://m.tkk7.com/ktoo/archive/2008/02/03/179175.html</link><dc:creator>KTOO</dc:creator><author>KTOO</author><pubDate>Sun, 03 Feb 2008 07:18:00 GMT</pubDate><guid>http://m.tkk7.com/ktoo/archive/2008/02/03/179175.html</guid><wfw:comment>http://m.tkk7.com/ktoo/comments/179175.html</wfw:comment><comments>http://m.tkk7.com/ktoo/archive/2008/02/03/179175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/ktoo/comments/commentRss/179175.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/ktoo/services/trackbacks/179175.html</trackback:ping><description><![CDATA[2008-02-02 14:32:22,109 WARN - OgnlUtil.internalSetProperty(369) | Caught OgnlException while setting property 'firmCode' on type 'com.test.ProductViewBean'.<br /> java.lang.IllegalArgumentException<br />  at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)<br />  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />  at java.lang.reflect.Method.invoke(Method.java:585)<br />  at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)<br />  at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:812)<br />  at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)<br />  at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75)<br />  at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)<br />  at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68)<br />  at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)<br />  at ognl.ASTProperty.setValueBody(ASTProperty.java:101)<br />  at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)<br />  at ognl.SimpleNode.setValue(SimpleNode.java:246)<br />  at ognl.Ognl.setValue(Ognl.java:476)<br />  at com.opensymphony.xwork2.util.OgnlUtil.setValue(OgnlUtil.java:186)<br />  at com.opensymphony.xwork2.util.OgnlUtil.internalSetProperty(OgnlUtil.java:360)<br />  at com.opensymphony.xwork2.util.OgnlUtil.setProperty(OgnlUtil.java:135)<br />  at com.opensymphony.xwork2.util.OgnlUtil.setProperty(OgnlUtil.java:116)<br />  at org.apache.struts2.components.Bean.addParameter(Bean.java:147)<br />  at org.apache.struts2.components.Param.end(Param.java:114)<br />  at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)<br />  at _jsp._product._productcatagorysecondlist__jsp._jspService(_productcatagorysecondlist__jsp.java:105)<br />  at com.caucho.jsp.JavaPage.service(JavaPage.java:60)<br />  at com.caucho.jsp.Page.pageservice(Page.java:570)<br />  at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179)<br />  at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)<br />  at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)<br />  at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)<br />  at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106)<br />  at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)<br />  at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)<br />  at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)<br />  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)<br />  at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)<br />  at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)<br />  at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)<br />  at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)<br />  at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)<br />  at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)<br />  at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)<br />  at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)<br />  at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)<br />  at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)<br />  at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)<br />  at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)<br />  at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)<br />  at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420)<br />  at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)<br />  at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)<br />  at com.caucho.util.ThreadPool.run(ThreadPool.java:442)<br />  at java.lang.Thread.run(Thread.java:595)<br /> <br /> <br /> <br /> 榪欎釜閿欒鏈夋椂鍑虹幇錛屾湁鏃舵病鏈夛紝鍙堜粩緇嗙湅浜嗕竴涓嬫簮鐮侊紝鍙戠幇'firmCode'榪欎釜灞炴х殑綾誨瀷鏄痠nt,鎶婂畠鏀逛負Integer...<br /> 搴旇娌¢棶棰樹簡錛岃繖鏄疭truts2涓被鍨嬭漿鎹㈢殑闂 <img src ="http://m.tkk7.com/ktoo/aggbug/179175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/ktoo/" target="_blank">KTOO</a> 2008-02-03 15:18 <a href="http://m.tkk7.com/ktoo/archive/2008/02/03/179175.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts2鍦≧esin3.0X涓繍琛岀殑閰嶇疆http://m.tkk7.com/ktoo/archive/2007/12/17/168239.htmlKTOOKTOOMon, 17 Dec 2007 07:30:00 GMThttp://m.tkk7.com/ktoo/archive/2007/12/17/168239.htmlhttp://m.tkk7.com/ktoo/comments/168239.htmlhttp://m.tkk7.com/ktoo/archive/2007/12/17/168239.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/168239.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/168239.html 浠庣綉涓婃悳浜嗕竴涓嬶紝瑙e喅鏂規硶濡備笅錛?br /> 鍥燫esin鐨刴od_caucho鎻掍歡涓鑸儏鍐典笅浠呭Servlet,JSP鏈嶅姟錛屼笉浼氬Struts2涓殑Filter鏂瑰紡鎻愪緵緗戝潃鏈嶅姟錛?br /> 鍥犳鍙互浣跨敤"Special servlet-mapping"銆?br /> 鍦╓EB鈥擨NF鐩綍涓嬪啀鏂板緩resin-web.xml,浣滃涓嬮厤緗?br />
<web-app xmlns="http://caucho.com/ns/resin">
 <servlet-mapping url-pattern='/struts/*' servlet-name='plugin_match'/>
 <servlet-mapping url-pattern='/other/*' servlet-name='plugin_match'/>
 <servlet-mapping url-pattern='*.action' servlet-name='plugin_match'/>
 <servlet-mapping url-pattern='*.html' servlet-name='plugin_match'/>
 <servlet-mapping url-pattern='*.do' servlet-name='plugin_match'/>
 <servlet-mapping url-pattern='/dwr/*' servlet-name='plugin_match'/>             
</web-app>
錛岄棶棰樿В鍐充簡

KTOO 2007-12-17 15:30 鍙戣〃璇勮
]]>
FilterDispatcherhttp://m.tkk7.com/ktoo/archive/2007/08/28/140631.htmlKTOOKTOOTue, 28 Aug 2007 10:56:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/28/140631.htmlhttp://m.tkk7.com/ktoo/comments/140631.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/28/140631.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/140631.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/140631.html瀹冪殑浣滅敤濡備笅!
  1. 鐢ㄦ潵瑁呰澆閰嶇疆鍜岃緗潤鎬佽祫婧愮殑package
      public void init(FilterConfig filterConfig) throws ServletException {        
            init();       
            String param 
    = filterConfig.getInitParameter("packages");
            String packages 
    = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
            
    if (param != null) {
                packages 
    = param + " " + packages;
            }
            
    this.pathPrefixes = parse(packages);
        }
     
      
    public void init() {

            
    if (configurationManager == null) {
                configurationManager 
    = new ConfigurationManager(BeanSelectionProvider.DEFAULT_BEAN_NAME);//鐢ㄦ潵鍒濆鍖朇onfigurationManager
            }

            init_DefaultProperties(); 
    // org.apache.struts2.default.properties閰嶇疆鐨刾rovider鍒濆鍖?/span>
            init_TraditionalXmlConfigurations(); // struts-default.xml,struts-plugin.xml,struts.xml閰嶇疆鐨刾rovider鍒濆鍖?/span>
            init_LegacyStrutsProperties(); //
            init_ZeroConfiguration(); //
            init_CustomConfigurationProviders(); //
            init_MethodConfigurationProvider();
            init_FilterInitParameters() ; 
    //
            init_AliasStandardObjects() ; //

            Container container 
    = init_PreloadConfiguration();
            init_CheckConfigurationReloading(container);
            init_CheckWebLogicWorkaround(container);

        }
  2. 鍖呰杞崲璇鋒眰
     1     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
     2 
     3         
     4         HttpServletRequest request = (HttpServletRequest) req;
     5         HttpServletResponse response = (HttpServletResponse) res;
     6         ServletContext servletContext = getServletContext();
     7 ………………………………
     8             request = prepareDispatcherAndWrapRequest(request, response);//浣滀簺緙栫爜鍑嗗鍜屼負浜嗕笂浼犳枃浠朵綔鍖呰
     9             ActionMapping mapping= actionMapper.getMapping(request, getConfigurationManager()); // 鎶婅姹傚拰閰嶇疆鏂囦歡鎸傚嬀            
    10 
    11          
    12 ……………………………………
    13          serviceAction(request, response, servletContext, mapping);//鍒涘緩Action涓婁笅鏂囷紝鏍規嵁緇欏畾鐨刴apping瑁呰澆ActionProxy,鐒跺悗鎸囧畾鐨凙ction鏂規硶琚墽琛岋紝杈撳嚭榪涘叆response
    14 
    15           ActionContextCleanUp.cleanUp(req);//
    16      ………………
    17     }
    18 


KTOO 2007-08-28 18:56 鍙戣〃璇勮
]]>
Struts2鐨勬墽琛屾祦紼?/title><link>http://m.tkk7.com/ktoo/archive/2007/08/20/138229.html</link><dc:creator>KTOO</dc:creator><author>KTOO</author><pubDate>Mon, 20 Aug 2007 13:40:00 GMT</pubDate><guid>http://m.tkk7.com/ktoo/archive/2007/08/20/138229.html</guid><wfw:comment>http://m.tkk7.com/ktoo/comments/138229.html</wfw:comment><comments>http://m.tkk7.com/ktoo/archive/2007/08/20/138229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/ktoo/comments/commentRss/138229.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/ktoo/services/trackbacks/138229.html</trackback:ping><description><![CDATA[<br> <div style="text-align: left;">Struts2鐨勪綋緋葷粨鏋勫涓嬪浘鎵紺?<br> <div style="text-align: center;">  <img style="width: 561px; height: 607px;" alt="" src="http://m.tkk7.com/images/blogjava_net/ktoo/Struts2-Architecture.png"><br> <div style="text-align: left;">   涓涓狧ttpServletRequest璇鋒眰涓涓狝ction緇忓巻濡備笅嫻佺▼!<br> <ol> <li>褰撲嬌鐢ㄤ簡SiteMesh Plugin絳夋妧鏈紝棣栧厛璋冪敤ActionContextCleanUp filter鍜屽叾瀹冮渶瑕佺殑filter鎴栦綘鍐欑殑filter銆?/li> <li>鎺ヤ笅鏉ilterDispacher琚皟鐢紝榪欐槸鏍稿績鐨刦ilter,榪欎釜filter浼氫粠ActionMapper涓幓鎵炬湁娌℃湁涓庤姹傜浉瀵瑰簲鐨凙ction,濡傛灉娌℃壘鍒板氨浼氭姤閿?</li> <li>鍦ˋctionMapper涓壘鍒拌鎵ц鐨凙ction鍚庯紝鎺у埗鏉冭漿鍒癆ctionProxy,ActionProxy鍙傝僺truts.xml鏂囦歡錛屽垱寤篈ctionInvocation綾?</li> <li>ActionInvocation璐熻矗Action鎵ц鍓岻nterceptor鐨勮皟鐢ㄥ拰Action鎵ц鐨勭殑鎺у埗!Action鎵ц瀹屾瘯榪斿洖鏃訛紝ActionInvocation鍙堟妸鎵ц緇撴灉鍜宻truts.xml涓厤緗殑緇撴灉鍏寵仈榪涙潵!(鎰熻ActionInvocation鍍廇ction鐨勭埗浜詫紝鎶夾ction榪欎釜瀛╁瓙鐨勪竴鍒囬兘瀹夋帓浜?_-)</li> <li>鐒跺悗灝辨槸閰嶇疆涓搴旂粨鏋淭emplate鐨勭粯鍒朵簡!</li> <li>緇樺埗Template 鍚庯紝ActionInvocation鍙互鍐嶅幓璋冪敤Interceptor</li> <li>鏈鍚庯紝鍦ㄥ悜璇鋒眰榪斿洖緇撴灉鏃訛紝web.xml涓厤緗殑filter榪樺彲浠ュ瀹冨鐞嗕竴涓?<br></li> </ol> </div> </div> </div> 鐩稿叧綾昏鏄?<br> <ul> <li><span style="font-weight: bold;">ObjectFactory </span>姝ょ被璐熻矗鍒涘緩妗嗘灦鏍稿績綾伙紝涓婇潰浣撶郴涓墍鏈夌被閮芥槸鐢卞畠鍒涘緩鐨?Action,Results,Interceptors絳?!鎴戜滑鍙互緇ф壙瀹冧互鎺у埗鏍稿績綾葷殑瀹炰緥!</li>   <li><span style="font-weight: bold;">FilterDispatcher</span>: 涓昏鏈夊洓涓綔鐢?<br></li> </ul> <ol> <li>鎵цAction,</li> <li>鑷姩娓呯悊ActionContext,闃叉鍐呭瓨娉勬紡錛?/li> <li>涓洪潤鎬佸唴瀹規湇鍔?濡俲avaScript鏂囦歡,CSS 鏂囦歡!鍍忓緢澶欰JAX UI鏍囩閮介渶瑕佸緢澶歫avaScript鏂囦歡錛屽畠浠氨鍦╫rg.apache.struts2.static.package涓嬮潰錛岃屾鏋朵細鑷姩瀵繪壘org.apache.struts2.static鍜宼emplate鏂囦歡澶?</li> <li>鎶奨Work涓殑interceptor閾句粠璇鋒眰鐢熷懡鍛ㄦ湡涓竻闄?<br></li> </ol> <ul> <li><span style="font-weight: bold;">ActionContextCleanUp</span>:  榪欐槸涓猣ilter錛屽彲浠ョ敤鏉ュ悓FilterDispatcher鍗忎綔錛屼嬌寰楁鏋舵洿瀹規槗涓嶴iteMesh闆嗘垚!浣垮緱FilterDispatcher涓嶆竻鐞咥ctionContext錛岃屾槸鍘繪竻鐞嗚繖涓猣ilter;</li> <li><br></li> </ul>          <br><img src ="http://m.tkk7.com/ktoo/aggbug/138229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/ktoo/" target="_blank">KTOO</a> 2007-08-20 21:40 <a href="http://m.tkk7.com/ktoo/archive/2007/08/20/138229.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>struts2 Ajax瀛︿範http://m.tkk7.com/ktoo/archive/2007/08/15/136838.htmlKTOOKTOOWed, 15 Aug 2007 02:38:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/15/136838.htmlhttp://m.tkk7.com/ktoo/comments/136838.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/15/136838.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/136838.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/136838.htmlstruts鍙戣鏃跺凡緇戝畾浜哾ojo ajax綾誨簱,榪樻彁渚涗簡涓浜?ajax tag,浠庣畝鍗曠殑瀛﹁搗,鍏堢湅ajax tag!

涓.ajax Tag

   ajax tag

    Ajax Tag 璇存槑
    涓庢櫘閫歞iv涓嶅悓鐨勬槸,瀹冨彲浠ラ氳繃ajax鍒鋒柊
    浣跨敤ajax鏇存柊鍙﹀涓涓厓绱犳垨鎻愪氦form
    浣跨敤ajax鏇存柊鐩爣鍏冪礌
    涓涓彲浠ュ姞鍏ュ姩鎬佸拰闈欐?s:div> 鐨刾anel
    浣跨敤ajax鍦ㄧ幇鏈夋暟鎹殑鐨勫熀紜涓婃洿鏂板彟澶栦竴涓厓绱?/td>
ajax tag鍏湁灞炴?
    灞炴?/td> 璧嬪艱鏄?/td>
    href 鐢ㄦ潵鍙戦佽姹傜殑url
    listenTopics 浼氬紩鍙戠洰鏍噒ag閲嶆柊杞藉叆鍐呭鎴栧彂鐢熷姩浣?鎸囧畾澶氫釜topics 鏃剁敤閫楀彿闅斿紑
    notifyTopics tag鍏紑鐨勪竴涓爣蹇?鎸囧畾澶氫釜topics鏃剁敤閫楀彿闅斿紑
    showErrorTransportText 璁劇疆閿欒淇℃伅鏄惁鏄劇ず
    indicator 鍦╮equest榪涜鏃舵樉紺虹殑涓滀笢

鍏充簬Tag鐨勮緇嗚鏄庡彲浠ョ湅API錛岃鍦╯truts2涓嬌鐢╝jax tag鍙鍔犱笂<s:head theme="ajax"/>

鐒跺悗鍦ㄤ嬌鐢ㄧ殑ajax tag涓姞涓妕heme="ajax"灝卞彲浠ヤ簡!


浜岋紝浜嬩歡
  • 鐩存帴浣跨敤url鎴栫粰Action灞炴?
     <s:url id="ajaxTest" value="/AjaxTest1.action"/>
     
    <s:submit type="submit"  theme="ajax" value="SUBMIT" targets="t1" href="%{ajaxTest}" align="left" tooltip="Hello"/>
  • 浣跨敤topics娉ㄥ唽浜嬩歡
     1 
     2   <script type="text/javascript">//topics娉ㄥ唽
     3  …………
     4 …………      dojo.event.topic.subscribe("/after",function(data,type,e)
     5       {
     6           alert("inside a topic event type="+type);
     7           dojo.byId("t2").innerHTML="SUBSCRIBE"+e.toString()+data.toString();
     8 //鍏朵腑data琛ㄧず榪斿洖鐨勭粨鏋滄暟鎹紝
     9  //type琛ㄧず榪斿洖鐨勭被鍨媌efore,after,load涔嬩竴
    10 //e琛ㄧずXMLHttpRequest瀵硅薄
    11       }  );
    12   </script>
    13 
    14   <s:submit type="submit" theme="ajax" value="鎻愪氦" targets="t1" href="%{ajaxTest}" align="left" notifyTopics="/after"/>
    15 //targets琛ㄧず鏀劇粨鏋滃肩殑鍦版柟
  •  浣跨敤Handler
     
     
    <script type="text/javascript">
          function handler(widget,node)
          {
              alert(
    "I will handle this");
              dojo.byId(
    "t2").innerHTML="I Have Done";
          }      
      
    </script>
    <s:div handler="handler" id="t2" theme="ajax" cssStyle="border:1px solid yellow">Inital Coment</s:div>
    //姝iv浼氬湪欏甸潰絎竴嬈″姞杞界殑鏃跺欒皟鐢ㄨ繖涓猦andler



KTOO 2007-08-15 10:38 鍙戣〃璇勮
]]>
struts2鍑洪敊http://m.tkk7.com/ktoo/archive/2007/08/13/136510.htmlKTOOKTOOMon, 13 Aug 2007 13:42:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/13/136510.htmlhttp://m.tkk7.com/ktoo/comments/136510.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/13/136510.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/136510.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/136510.html鐢═omat5.5.20struts2+IntelliJ IDEA寮鍙?鍒氬紑濮嬩竴鍒囨甯?浠婂ぉ姝繪椿瑕佸嚭鐜頒笅闈㈢殑鍑洪敊娑堟伅,
璁╂垜鍗佸垎鎭肩伀,浜庢槸涓婄綉鎼?鏌ocument,鐢ㄤ簡N縐嶆柟娉曡繕鏄棤鏁?br>Unable to load bean: type:c
.......
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
.....
鍚庢潵鎯寵搗鏄ㄥぉ鐨勮皟璇昄OG,
浼間箮IDEA鍚姩Tomat鐨勬椂鍊欒繕浼氬幓鍔犺澆Tomat涓殑Web宸ョ▼,鎴戞槰澶╀笅鍗堟墠鎶妔truts2鐨勪袱涓獁ar渚嬪瓙Deploy涓婂幓,鑰屼笖榪欎袱涓緥瀛愯繍琛屾甯鎬竴鎯沖埌榪?椹笂鎶婅繖涓や釜渚嬪瓙鍏ㄥ垹浜?
  娌℃兂鍒癐DEA璋冭瘯涓嶅嚭閿欎簡!鍢垮樋!

 
 鐪嬫潵com.opensymphony.xwork2.ObjectFactory鍙兘鍔犺澆涓嬈?br>涓嶈繃鍚庨潰閭e彞Casued by....鏄粈涔堟剰鎬濆憿?

蹇樹簡涓涓叧閿殑闂,鎴戦儴緗茬殑鏃跺欑敤鐨勬槸Tomcat鐨凪anager鍘婚儴緗瞱ar鍖呯殑鏂規硶,
鏄ㄥぉ鐩存帴鎶妔how-case鏂囦歡鏀懼埌webapp涓嬮潰,鍙戠幇娌℃湁鍑洪敊


KTOO 2007-08-13 21:42 鍙戣〃璇勮
]]>
OGNL(浜?http://m.tkk7.com/ktoo/archive/2007/08/12/136229.htmlKTOOKTOOSun, 12 Aug 2007 12:38:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/12/136229.htmlhttp://m.tkk7.com/ktoo/comments/136229.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/12/136229.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/136229.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/136229.html 涓.榪愮畻絎?/td>     OGNL鍊熺敤浜唈ava鐨勫ぇ澶氭暟絎﹀彿,鑰屼笖瀹冭繕鍔犱簡涓浜涙柊鐨勭鍙?
濡備笅琛?
絎﹀彿 getValue()瑕佹敞鎰忎簨欏?/td> setValue()娉ㄦ剰浜嬮」
e1,e2
         欏哄簭榪愮畻絎?/td>
e1鍜宔2閮戒細浣跨敤鍚屼竴涓簮瀵硅薄璁$畻鍊?
涓斾細榪斿洖e2鐨勮綆楀?/td>
getValue浣跨敤e1
setValue浣跨敤e2
e1=e2
      絳変簬榪愮畻絎?/td>
getValue浣跨敤e2,setValu浣跨敤e1,涓攅2鐨勭粨鏋滀綔涓虹洰鏍囩殑瀵硅薄  
e1?e2:e3    
e1||e2,e1 or e2    
e1|e2,e1 bor e2    
e1^e2, e1 xor e2    
e1&e2 ,e1 band e2    
e1==e2,e1 eq e2
e1!=e2, e1 neq e2
   
e1<e2,e1 lt e2
e1<=e2 ,e1 lte e2
e1>e2 ,e1 gt e2
e1>=e2 ,e1 get e2
e1 in e2
e1 not in e2
   
e1<< e2,e1 shl e2
e1>>e2 ,e1 shr e2
e1>>> e2,e1 ushr e2
   
e1+e2
e1-e2
   

e1*e2
e1/e2
e1%e2
   

+e
-e
!e
~e
e instanceof class
   
e.method(args)

e.property

e1[e2]

e1.{e2}

e1.{?e2}
         閫夋嫨
e1.(e2)
   瀛愯〃杈懼紡鐨勮綆?br>e1(e2)
  琛ㄨ揪寮忚綆?/td>
   
constant
        甯擱噺
(e)
        灝嗚〃杈懼紡鍔犲叆鎷彿鍐?br>method(args)
       鏂規硶璋冪敤
property
       灞炴ц皟鐢?
[e]
     閫氳繃绱㈠紩寰楀埌鍊?br>{ e,.....}
     鍒涘緩List
#variable
     涓婁笅鏂囦腑鍙橀噺鐨勫紩鐢?br>@class@method
(args)
     闈欐佹柟娉曡皟鐢?br>@ class@field
    闈欐佸瓧孌佃皟鐢?br>new class(args)
  鏋勯犲櫒璋冪敤
new array-component-class[] {e,....}
  鏁扮粍鍒涘緩
#{e1:e2,...}
     Map鍒涘緩

#@classname@{e1:e2,....}
   鍒涘緩鎸囧畾Map瀛愮被鍨嬬殑Map

:[e]
   Lambda琛ㄨ揪寮?br>

榪欎簺鏄渶鍩虹鐨勮繍綆楃

 
























                               

KTOO 2007-08-12 20:38 鍙戣〃璇勮
]]>
OGNLhttp://m.tkk7.com/ktoo/archive/2007/08/12/136226.htmlKTOOKTOOSun, 12 Aug 2007 11:50:00 GMThttp://m.tkk7.com/ktoo/archive/2007/08/12/136226.htmlhttp://m.tkk7.com/ktoo/comments/136226.htmlhttp://m.tkk7.com/ktoo/archive/2007/08/12/136226.html#Feedback0http://m.tkk7.com/ktoo/comments/commentRss/136226.htmlhttp://m.tkk7.com/ktoo/services/trackbacks/136226.htmlOGNL(Object Graph Navigation Language)鏄竴縐嶈〃杈懼紡璇█,浣跨敤瀹冨彲浠ヤ嬌琛ㄨ揪寮忎笌java瀵硅薄涓殑getter鍜宻etter灞炴х粦瀹?

涓斾竴涓狾GNL琛ㄨ揪寮忓彲浠ヨ繘琛屽瓨鍜屽彇涓ゆ柟闈㈢殑鎿嶄綔.

1).浣跨敤OGNL鐨勫ソ澶?/strong>

  • 鏄竴縐?鍙互鎶奊UI鍏冪礌鍜宮odel object緇戝畾鐨勮璦!涓旈氳繃OGNL鐨凾ypeConverter

            鏈哄埗鍙互鏇村鏄撳疄鐜板肩被鍨嬬殑鐨勮漿鎹?

  • 鍙互鎶奧eb緇勪歡鍜屽悗鍙扮殑model 緇戝畾(WebOGNL, Tapestry,WeboWork,WebOjbects)

2).OGNL琛ㄨ揪寮?/strong>

OGNL浣跨敤闆嗗悎

  浣跨敤Collection涓殑鍏冪礌欏葷敤绱㈠紩,濡?寰楀埌array涓涓涓厓绱犺〃杈懼紡涓篴rray[0]

List

           渚嬪瓙:           name in{null,"init"}       榪欎釜渚嬪瓙 褰搉ame灞炴ф槸 絀烘垨"init"榪斿洖true ,

      鑰屽湪榪欎釜榪囩▼涓細鍒涘緩List鎺ュ彛鐨勪竴涓疄渚?鍏蜂綋鐨勫瓙綾繪病鏈夋寚瀹?/p>

鏈湴Arrays     OGNL鏀寔鍒涘緩Java鏈湴鏁扮粍!  涓斿厑璁哥粰瀹氬瓨鍦ㄧ殑list鎴栬瀹氭暟緇勭殑鐨勫ぇ灝?/p>

                              new int[] {1,2,3}   鍒涘緩涓涓猧nt 鏁扮粍

                              new int[5]   鍒涘緩浜嗕竴涓猧nt鏁扮粍,瀹冪殑鍏冪礌鐨勫間負0

Maps    鍒涘緩Map     #{"foo":"fool value","bar":"bar value"}

        鎴戜滑鐢氳嚦鍙互鎸囧畾涓涓壒瀹氱殑java Map Class 鍘誨垱寤篗ap

        #@java.util.LinkedHashMap@{"foo":"foo value","bar":bar value"}; 

        Java Collection鍚勮嚜鏈変竴浜涚壒孌婄殑灞炴?/p>
Collection Special Properties
Collection(瀛愮被鏈塎ap List Set) size         闆嗗悎鐨勫ぇ灝?br>isEmpty   濡傛灉闆嗗悎涓虹┖鍊間負true
List iterator  寰楀埌姝ist鐨勮凱浠e櫒
Map keys      寰楀埌涓涓寘娑墊墍鏈夐敭鍊肩殑Set
values  寰楀埌涓涓寘鎷墍鏈夊肩殑Collection
Set iterator 寰楀埌姝et鐨勮凱浠e櫒
Iterator next       寰楀埌闆嗗悎涓殑涓嬩竴涓猳bject
hasNext濡傛灉闆嗗悎涓湁涓嬩竴涓猳bject鍒欒繑鍥瀟rue
Enumeration next  濡備笂 
hasNext濡備笂
nextElement  鍜宯ext涓鏍風殑浣滅敤
hasMoreElements鍜宧asNext涓鏍蜂綔鐢?/td>

     

 

OGNL璋冪敤JavaBean 绱㈠紩灞炴?/strong>

JavaBean绱㈠紩灞炴х殑鏍煎紡濡備笅

             public PropertyType[] getPropertyName()

             public void setPropertyName(propertyType[] anArray)

            public PropertyType getPropertyName(int index);

            public void setPropertyName(int index,PropertyType value)

OGNL鍙互寰堝鏄撳湴閫氳繃绱㈠紩瀛樺彇榪欎簺灞炴? Example

         someProperty[2] 

         鍦ㄨ繖涓緥瀛愪腑OGNL浼氳嚜鍔ㄦ壘鍒癵etSomeProperty(2)鎴栧瓨鍒皊etSomeProperty  (2,value)涓?

璋冪敤OGNL瀵硅薄绱㈠紩灞炴?/strong>

         瀵硅薄绱㈠紩灞炴ф牸寮?/p>

           public PropertyType getPropertyName(IndexType index)

            public void setPropertyName(IndexType index,PropertyType value)

            PropertyType 鍜孖ndexType 蹇呴渶璺熼泦鍚堝拰get鏂規硶涓殑綾誨瀷鐩擱厤

 

璋冪敤鏂規硶

              OGNL璋冪敤鏂規硶鍜孞ava璋冪敤鏂規硶鏈変竴鐐瑰尯鍒?鍥犱負OGNL鏄瑙i噴鐨勫茍涓斿繀闇鍦ㄨ繍琛屾椂閫夋嫨姝g‘鐨勬柟娉?鎵浠GNL璋冪敤鏂規硶鏃墮櫎浜嗘彁渚涙墍闇瑕佸弬鏁版病鏈夐澶栫殑綾誨瀷淇℃伅,OGNL閫夋嫨鍜屾彁渚涚殑鍙傛暟鏈閰嶇殑鏂規硶,濡傛灉鏈変袱涓垨鏇村鐨勬柟娉曠鍚堝尮閰?瀹冧滑涓殑涓涓細浠繪剰鐨勮閫夋嫨(鍦╓ebWork涓細閫夋嫨ValueStack涓婇潰鐨勬柟娉?

             鐗瑰埆涓鎻愮殑鏄?,null鍙互鍖歸厤鎵鏈夐潪鍩虹綾誨瀷,鎵鏈夊畠閫氬父浼氬鑷翠竴涓笉紜畾鐨勬柟娉曡璋冪敤

鍙橀噺鐨勮皟鐢?/strong> 

          OGNL鏈変竴涓畝鍗曠殑鍙橀噺閰嶇疆,鍦ㄨ繖鍎夸綘鍙互瀛樺偍涓棿鍊煎拰閲嶆柊浣跨敤榪欎簺涓棿鍊?鎴栬呬粎浠呭懡鍚嶄互浣胯〃杈懼紡鏇存槗鐞嗚В! 鍦∣GNL涓墍鏈夊彉閲忛兘鏄叏灞鐨?浣跨敤鍙橀噺鐨勬牸寮忔槸"#variable"

           OGNL鎶婂綋鍓嶇殑object鍦ㄦ瘡鐐圭殑琛ㄨ揪寮忓煎瓨鏀懼湪"this"榪欎釜鍙橀噺涓?鑰屼笖"this"鍙互鍍忓叾瀹冨彉閲忎竴鏍蜂嬌鐢?渚?

                    listeners.size().(#this>100?2*this:20+#this) 濡傛灉listeners涓殑鍏冪礌澶т簬100浼氳繑鍥炲厓绱犳暟閲忕殑涓ゅ?鍚﹀垯鏁伴噺鍔犱笂20

          鍙互鏄懼紡鍦扮粰鍙橀噺璧嬪?鍙鍦ㄥ彉閲忕殑鍚庤竟鍐欎竴涓〃杈懼紡鍗沖彲

               #var -99



Powered by ScribeFire.



KTOO 2007-08-12 19:50 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 成人免费视频网址| ww在线观视频免费观看| 天堂在线免费观看中文版| 亚洲成a人片在线网站| 四虎国产精品永久免费网址| 国产成人亚洲精品青草天美| 成人性做爰aaa片免费看| 亚洲Aⅴ无码专区在线观看q| 免费黄色电影在线观看| 国产亚洲免费的视频看| 国产亚洲精品免费视频播放| 国产区卡一卡二卡三乱码免费| 亚洲中文字幕一二三四区苍井空| 国产免费区在线观看十分钟| 免费高清在线爱做视频| 亚洲国产视频一区| 伊人免费在线观看高清版| 亚洲国产成人高清在线观看 | 一二三四视频在线观看中文版免费 | 国产亚洲精品无码拍拍拍色欲| MM1313亚洲精品无码久久| 女人18毛片特级一级免费视频| 亚洲视频一区网站| 国产好大好硬好爽免费不卡| 午夜国产大片免费观看| 无套内射无矿码免费看黄| 免费一级特黄特色大片在线 | 亚洲精品国产肉丝袜久久| 国产成人免费网站| 欧美亚洲国产SUV| 亚洲?V无码成人精品区日韩| 免费人成再在线观看网站 | 久久久影院亚洲精品| 美丽姑娘免费观看在线观看中文版 | 男人免费视频一区二区在线观看| 国产成人精品曰本亚洲79ren| 免费无码又爽又刺激网站直播| 91在线精品亚洲一区二区| 一二三四在线播放免费观看中文版视频 | 亚洲国产第一页www| 精品免费久久久久久成人影院|