2009年2月18日

          struts2 相關包--------------------------------------------------

          xwork-2.0.5.jar                          webwork的核心庫

          ognl-2.6.11.jar                           OGNL表達式語言,struts2支持該EL

          freemarker-2.3.8.jar                  表現層框架,定義了struts2的可視組件主題

          commons-beanutils.jar              提供對java 反射和自省API的包裝

          commons-fileupload.jar             文件上傳

          commons-io.jar                         輸入輸出,支持文件上傳

          commons-logging.jar                用于通用日志處理

          commons-validator.jar            提供了一個簡單的,可擴展的框架來在一個XML文件中定義校驗器(校驗方法)和校驗規則

          struts2-spring-plugin-2.0.11.2.jar   struts2的spring插件

          struts2-core-2.0.11.2jar                  struts2 2.0.11.2的核心庫

           

          hibernate 相關包--------------------------------------------------                   

          antlr-2.7.6.jar                                  語法分析生成器

          backport-util-concurrent-3.1.jar     ehcache支持jar    

          cglib-nodep-2.1_3.jar                    是一種高性能,高質量的代碼產生庫, Hibernate 用它來實現 po (persistent                                                          object)字節碼的動態生成

          commons-collections.jar                包含了一些Apache開發的集合類,功能比java.util.*強大

          commons-pool.jar

          commons-dbcp.jar                          DBCP數據庫連接池。

          c3p0-0.9.1.jar                                 是一個數據庫連接池,Hibernate可以配置為使用C3PO連接池。如果準備用這個連接池,就需要這個jar包.

          dom4j-1.6.1.jar                               用來讀寫XML文件的

          ehcache-1.5.0.jar                        ehcache緩存

          hibernate3.jar                              hibernate-3.3.1.GA jar

          jaxen-1.1.1.jar                              支持dom4j的xpath

          javassist-3.4.GA.jar                       是一個開源的分析、編輯和創建Java字節碼的類庫,用于 Java 的加載時反射系統

          jta-1.1.jar                                       JTA規范,當Hibernate使用JTA的時候需要

          jsr107cache-1.0.jar                             ehcache支持jar

          mysql-connector-java-3.1.14-bin.jar  mysql驅動jar

           

          spring 相關包--------------------------------------------------

          spring.jar                                     spring-2.5.5.jar

          slf4j-log4j12-1.5.0.jar                         slf4j log4j支持包

          log4j-1.2.15.jar

          slf4j-api-1.5.0.jar

           

          posted @ 2009-08-10 09:19 沉聲 閱讀(2190) | 評論 (0)編輯 收藏
           
          層滑動效果 (jquery)
          slideToggle(speed,[callback])
          通過高度變化來切換所有匹配元素的可見性,并在切換完成后可選地觸發一個回調函數。
          這個動畫效果只調整元素的高度,可以使匹配的元素以“滑動”的方式隱藏或顯示。

          --------------------------------------------------------------------------------

          Toggle the visibility of all matched elements by adjusting their height and firing an optional callback after completion.
          Only the height is adjusted for this animation, causing all matched elements to be hidden or shown in a "sliding" manner.
          返回值
          jQuery

          參數
          speed (String,Number) : 三種預定速度之一的字符串("slow", "normal", or "fast")或表示動畫時長的毫秒數值(如:1000)

          callback (Function) : (可選) 在動畫完成時執行的函數

          示例
          用600毫秒緩慢的將段落滑上或滑下 

          jQuery 代碼:

          $("p").slideToggle("slow"); 
          --------------------------------------------------------------------------------

          用200毫秒快速將段落滑上或滑下,之后彈出一個對話框 

          jQuery 代碼:

          $("p").slideToggle("fast",function(){
             alert("Animation Done.");
           }); 

          ------------------------------------------------------------------------------------------------------------------------------------
          獲取節點元素
          document.getElementById("p1").firstChild.firstChild.data;
          注:p1為層ID  層結構為 <div><p> xxoo</p></div> 以上表達式值即為 XXOO
          ---------------------------------------------------------------------
          取得頁面元素絕對位置
           1 function getLTWH(o)
           2 {
           3     var oLTWH={"left":0,"top":0,"width":0,"height":0};
           4     if(document.all)
           5     {
           6         var   oRect=o.getBoundingClientRect();
           7         oLTWH.left=oRect.left-2;
           8         oLTWH.top=oRect.top-2;
           9     }else
          10     {
          11         oLTWH.left=o.offsetLeft;
          12         oLTWH.top=o.offsetTop;
          13     }
          14     oLTWH.width=o.offsetWidth;
          15     oLTWH.height=o.offsetHeight;
          16     return oLTWH;
          17 }
          alert(o.left);
          alert(o.top);
          alert(o.width);
          alert(o.height); 這樣就出來了。

          -------------------------------------------------------------------------------------------------------------------------
          路徑問題 直接<%=request.getContextPath()%>/*就OK~
          posted @ 2009-04-13 16:13 沉聲 閱讀(106) | 評論 (0)編輯 收藏
           
          一.常用表單基本取值方法(form1為表單名稱,TextBox1為控件ID,以文本框為例,html控件與web服務器控件是一樣的)
                  1.form1.TextBox1.value 
                  2.var txt = document.all.TextBox1; 
                    txt.value
                  3.var txt = document.all["TextBox1"];
                    txt.value
                  4.document.getElementById("TextBox1");

          二.
          1.html復選框(name相同)
          表單: <input id="Checkbox1" type="checkbox" name="chk" value="123" />sss
                 <input id="Checkbox2" type="checkbox" name="chk" value="456"/>aaa
                 <input id="Checkbox3" type="checkbox" name="chk" value="789"/>bbb

          實現功能:遍歷html復選框,得到所選中項
             var oChks = document.all.chk; 
             for(var i=0; i<oChks.length; i++)   
             {   
                  if(oChks[i].checked)   
              alert(oChks[i].value);   
             } 

          2.html單選框(name相同)
          表單: <input id="Radio1" type="radio" name="rad" value="123"/>123
                 <input id="Radio2" type="radio" name="rad" value="456"/>456
          實現功能:遍歷html復選框,得到所選中項
          代碼同html復選框

          3.html下拉列表框
          表單:<select id="Select1" multiple>
              <option value=1>1</option>
              <option value=2>2</option>
                </select>
          實現功能:
             3.1得到所選中項的text和value值(選擇一項)
              var selDrp = document.all.Select1;
              alert(selDrp.options[selDrp.selectedIndex].text);
              alert(selDrp.options[selDrp.selectedIndex].value);
             3.2得到所選中項的text和value值(選擇多項)
              for(var j=0;j<selDrp.options.length;j++)
              {
                    if(selDrp.options[j].selected)
                    {
               alert(selDrp.options[j].value);
                    }
              }
          4.DropDownList控件與ListBox控件
          實現功能:得到所選中項的text和value值
          代碼同html下拉列表框

          5.CheckBoxList控件
          實現功能:得到所選中項的text
          代碼:
                  var chklist = document.all("CheckBoxList1"); 
                  var i = 0;   
                  for(i=0;i<chklist.rows.length;i++)   
                  {   
             var name = "CheckBoxList1_" + i;   
             var tmpChecked = document.all[name].checked; 
                          if(tmpChecked)   
                          {   
              alert(document.all[name].parentElement.innerText);   
                            
                           }   
                  }
          posted @ 2009-03-26 15:11 沉聲 閱讀(658) | 評論 (0)編輯 收藏
           

          個人心得
           spring的DI就是 靠JAVA反射到指定的實體類中調用該類中的SET方法注入
          會根據property 的name屬性反射的相應的類中找SET方法


          spring對AOP的支持(采用Annotation的方式)

          1、spring依賴庫
           * SPRING_HOME/dist/spring.jar
           * SPRING_HOME/lib/jakarta-commons/commons-logging.jar
           * SPRING_HOME/lib/log4j/log4j-1.2.14.jar
           * SPRING_HOME/lib/aspectj/*.jar
           
          2、采用Aspect定義切面

          2、在Aspect定義Pointcut和Advice

          4、啟用AspectJ對Annotation的支持并且將Aspect類和目標對象配置到Ioc容器中

          注意:在這種方法定義中,切入點的方法是不被執行的,它存在的目的僅僅是為了重用切入點
          即Advice中通過方法名引用這個切人點

          AOP:
           * Cross cutting concern
           * Aspect
           * Advice
           * Pointcut
           * Joinpoint
           * Weave
           * Target Object
           * Proxy
           * Introduction

          spring的普通屬性注入 
           參見:spring文檔3.3章節
           
          什么是屬性編輯器,作用?
           * 自定義屬性編輯器,spring配置文件中的字符串轉換成相應的對象進行注入
           spring已經有內置的屬性編輯器,我們可以根據需求自己定義屬性編輯器
           
           * 如何定義屬性編輯器?
            * 繼承PropertyEditorSupport類,覆寫setAsText()方法,參見:UtilDatePropertyEditor.java
            * 將屬性編輯器注冊到spring中,參見:applicationContext-editor.xml
            
          依賴對象的注入方式,可以采用:
           * ref屬性
           * <ref>標簽
           * 內部<bean>來定義
           
          如何將公共的注入定義描述出來?
           * 通過<bean>標簽定義公共的屬性,指定abstract=true
           * 具有相同屬性的類在<bean>標簽中指定其parent屬性
           
           參見:applicationContext-other.xml
              
            
             

          posted @ 2009-03-24 16:00 沉聲 閱讀(163) | 評論 (0)編輯 收藏
           

          雜文
          Session 是非線程安全的
          所以一個業務請求來就打開一個session 用完就立即關閉

          采用get加載數據,如果數據庫中不存在相應的數據,返回null

          在刪除和修改時,一般都先將要操作的數據加載上之后再進行刪除和修改。

          get和load只能根據主鍵加載,如要使用別的方式 則需借助HQL查詢


          查詢時 from后面區分大小寫(對應的是實體類 而不是表名)

          hibernate基本映射

          實體類---表
          實體類中的普通屬性---表字段

          采用<class>標簽映射成數據庫表,通過<property>標簽將普通屬性映射成表字段
          所謂普通屬性指不包括自定義類、集合和數組等

          注意:如果實體類和實體類中的屬性和sql中的關鍵字重復,必須采用table或column重新命名

          實體類的設計原則:
           * 實現一個默認的(即無參數的)構造方法(constructor)
           * 提供一個標識屬性(identifier property)(可選)
           * 使用非final的類 (可選)
           * 為持久化字段聲明訪問器(accessors) 

          主鍵生成策略:
           uuid、native和assigned


          hibernate一級緩存
           
          一級緩存很短和session的生命周期一致,一級緩存也叫session級的緩存或事務級緩存

          那些方法支持一級緩存:
           * get()
           * load()
           * iterate(查詢實體對象)
           
          如何管理一級緩存:
           * session.clear(),session.evict()
           
          如何避免一次性大量的實體數據入庫導致內存溢出
           * 先flush,再clear
           
          如果數據量特別大,考慮采用jdbc實現,如果jdbc也不能滿足要求可以考慮采用數據本身的特定導入工具     


          hibernate二級緩存

          二級緩存也稱進程級的緩存或SessionFactory級的緩存,二級緩存可以被所有的session共享
          二級緩存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二級緩存

          二級緩存的配置和使用:
           * 將echcache.xml文件拷貝到src下
           * 開啟二級緩存,修改hibernate.cfg.xml文件
            <property name="hibernate.cache.use_second_level_cache">true</property>
           * 指定緩存產品提供商,修改hibernate.cfg.xml文件
            <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
           * 指定那些實體類使用二級緩存(兩種方法)
            * 在映射文件中采用<cache>標簽
            * 在hibernate.cfg.xml文件中,采用<class-cache>標簽
            
          二級緩存是緩存實體對象的

          了解一級緩存和二級緩存的交互  
            

          采用編程式事務

          1、getCurrentSession()與openSession()的區別?
           * 采用getCurrentSession()創建的session會綁定到當前線程中,而采用openSession()
             創建的session則不會
           * 采用getCurrentSession()創建的session在commit或rollback時會自動關閉,而采用openSession()
             創建的session必須手動關閉
            
          2、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
           * 如果使用的是本地事務(jdbc事務)
           <property name="hibernate.current_session_context_class">thread</property>
           * 如果使用的是全局事務(jta事務)
           <property name="hibernate.current_session_context_class">jta</property>  


               
               

          posted @ 2009-03-19 11:11 沉聲 閱讀(171) | 評論 (0)編輯 收藏
           
          javascript中的Split使用方法與技巧
          使用方法:
          myArray=string.split("|");
          example:
          <scriptlanguage="JavaScript"> 
          <!-- 
          functionRequest(strName) 
          { 
          varstrHref
          ="www.nextway.cn/index.htm?a=1&b=1&c=Split實例"; 
          varintPos
          =strHref.indexOf("?"); 
          varstrRight
          =strHref.substr(intPos+1); 
          vararrTmp
          =strRight.split("&"); 
          for(vari=0;i<arrTmp.length;i++) 
          { 
          vararrTemp
          =arrTmp[i].split("="); 
          if(arrTemp[0].toUpperCase()==strName.toUpperCase())returnarrTemp[1]; 
          }
           
          return""; 
          }
           
          alert(Request(
          "a")); 
          alert(Request(
          "b")); 
          alert(Request(
          "c")); 
          //--> 
          </script>
          posted @ 2009-02-18 12:28 沉聲 閱讀(169) | 評論 (0)編輯 收藏
           
          主站蜘蛛池模板: 安宁市| 浦江县| 民乐县| 二连浩特市| 筠连县| 宾阳县| 周宁县| 永州市| 凤山市| 济阳县| 肥东县| 中卫市| 交口县| 三台县| 怀集县| 雷山县| 贵南县| 鄂托克前旗| 大兴区| 金寨县| 康保县| 泰来县| 临城县| 石楼县| 马山县| 丰镇市| 东乡族自治县| 石景山区| 武威市| 平湖市| 河源市| 肃北| 沅陵县| 克东县| 黄冈市| 澎湖县| 屯留县| 万安县| 方城县| 田阳县| 施秉县|