隨筆-8  評論-2  文章-24  trackbacks-0
            2006年6月8日

             很多人都分不清GET與POST的區別,以及什么時候用GET?什么時候用POST?
          GET和POST兩種方法都是將數據送到服務器,但你該用哪一種呢?
          HTTP標準包含這兩種方法是為了達到不同的目的。POST用于創建資源,資源的內容會被編入HTTP請示的內容中。例如,處理訂貨表單、在數據庫中加入新數據行等。
          當請求無副作用時(如進行搜索),便可使用GET方法;當請求有副作用時(如在數據庫添加數據行),則用POST方法。一個比較實際的問題是:GET方法可能會產生很長的URL,或許會超過某些瀏覽器與服務器對URL長度的限制。
          若符合下列任一情況,則用POST方法:

          請求的結果有持續性的副作用,例如,數據庫內添加新的數據行。    
          若使用GET方法,則表單上收集的數據可能讓URL過長。    
          要傳送的數據不是采用7位的ASCII編碼。
           
              若符合下列任一情況,則用GET方法: 
              
          請求是為了查找資源,HTML表單數據僅用來幫助搜索。    
          請求結果無持續性的副作用。    
          收集的數據及HTML表單內的輸入字段名稱的總長不超過1024個字符。
          本文來自: 中國自學編程網(www.zxbc.cn) 詳細出處參考:http://www.zxbc.cn/html/article/aspprog/0916120715029.html

          posted @ 2008-02-26 09:57 MyBox 閱讀(647) | 評論 (0)編輯 收藏
              J2EE服務器啟動時會建立一定數量的池連接,并一直維持不少于此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成后,池驅動程序將此連接表記為空閑,其他調用就可以使用這個連接。
          posted @ 2008-02-25 16:10 MyBox 閱讀(238) | 評論 (0)編輯 收藏
          web.xml文件的格式-必須注意順序

              由于Web程序開發中各種人員有不同分工,而Web程序的部署描述文件是程序構件提供者、程序組裝者和程序部署者之間的溝通機制;Servlet 2.4之前的版本規定了在Web服務器中使用DTD格式的web.xml,而Servlet 2.4將依照XML schema格式定義web.xml;實際上這兩種格式的web.xml只是在頭部有區別,其內容都是描述Web程序的部署信息。在web.xml中出現的部署元素主要包含以下信息:

          ServletContext的初始化變量(Init Parameters);
          交互會話(Session)的設置;
          Servlet的聲明定義;
          Servlet和網址URL的映射(Mapping);
          應用程序生命周期的監聽器(Application Lifecycle Listener);
          過濾器聲明;
          過濾器和網址URL或Servlet/JSP的映射;
          MIME類型;
          歡迎文件(Welcome File);
          錯誤網頁(Error Pages);
          安全設置信息;
          taglib配置;
          JNDI對象(env-entry,ejb-ref,ejb-local-ref,resource-ref,resource-env-ref)。

          在web.xml中具體標識為:

          icon?,
          display-name?,
          description?,
          distributable?,
          context-param*,
          filter*,
          filter-mapping*,
          listener*,
          servlet*,
          servlet-mapping*,
          session-config?,
          mime-mapping*,
          welcome-file-list?,
          error-page*,
          taglib*,
          resource-env-ref*,
          resource-ref*,
          security-constraint*,
          login-config?,
          sec..............

          其中taglib配置與JNDI對象這兩項是支持J2EE的Web服務器必須要求的。對于不支持J2EE的servlet/JSP服務器,不需要這兩項;在web.xml中的元素需要按照規定的大小寫和順序出現。

          posted @ 2007-07-12 09:52 MyBox 閱讀(1244) | 評論 (1)編輯 收藏
                  用JBoss 3.2.1架站以來,始終是一個大問題。不大的站點,1G的內存都不夠用,經常要消耗500Mb的交換內存(swap)。
                  JAVA_OPTS(bin/run.conf)寫法: -Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap
          這個JAVA_OPTS犯了2個致命的錯誤:
             1. +XX:AggressiveHeap會使得 Xms 1220m沒有意義。這個參數讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。
          另外Xmx作為允許jvm使用的最大內存數量,不應該超過物理內存的90%。
          而之所以使用了這個參數,是因為不加的話,JBoss會在運行一天左右的時間后迅速崩潰,上機課是,甚至出現過半個小時就崩潰的情況。
          之所以要用這個參數,用swap支持服務器運行,是因為犯了下面的錯誤:
             2. -Xss 15120k
          這使得JBoss每增加一個線程(thread)就會立即消耗15M內存,而最佳值應該是128K,默認值好像是512k.
          這就是JBoss剛啟動時,還有200Mb內存富余,但會在一個小時內迅速用完,因為服務器的threads在迅速增加。前3天,每天都多吃80Mb左右的swap.在第四天開始穩定下來。今年春節在外度假,觀察到了這個現象,卻不理解其原因:服務器在線程到達100之后,一般不再增加新的線程,新增加的在用完之后,會被迅速destroy,1.25-2.10所使用的線程基本是1.21- 1.23創建的,因此沒有再消耗新的內存。服務器持續運行時間,也因此大大超乎我5天的預期,到達了20天。
          修改:
          1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。現在的JAVA_OPTS為:
          -Xms 520m -Xmx 900m -Xss 128k
          2.修改deploy/jbossweb-tomcat55.sar/service.xml
          將maxThreads根據目前的訪問量由默認的250降為75,并使用jboss 4默認未寫在標準service.xml里面而jboss 3寫入了的2個參數: maxSparseThreads=55,minSparseThreads=25
          3.修改了oracle-ds.xml將最大連接數有150降為50.
          4.去掉了一些不用的服務。
          posted @ 2007-05-30 11:01 MyBox 閱讀(801) | 評論 (0)編輯 收藏

          oracle number類型的數值存儲空間是幾個字節?

          其實有公式可以計算:
          number(p,s)占用得空間為:
          length = floor((p+1)/2) + 1   
          備注:如果該數值為負數,需要再加一個字節。

          ----------------
          例如:NUMBER(14,4)的類型數值,存儲空間為

          select floor((14+1)/2) + 1  from dual 
          結果輸出為: 8

          posted @ 2007-04-10 14:43 MyBox 閱讀(3667) | 評論 (0)編輯 收藏
          /*
          *
          * 如果需要精確計算,非要用String來夠造BigDecimal不可
          */

          import java.math.BigDecimal;
          /**
          * 由于Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精
          * 確的浮點數運算,包括加減乘除和四舍五入。
          */

          public class Arith
          {
          //默認除法運算精度 
             private static final int DEF_DIV_SCALE = 10;
          //這個類不能實例化 
             private Arith() 
             { 
             }
          /**
          * 提供精確的加法運算。
          * @param v1 被加數
          * @param v2 加數
          * @return 兩個參數的和
          */
           
             public static double add(double v1, double v2) 
             { 
                BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
                BigDecimal b2 = new BigDecimal(Double.toString(v2)); 

                return b1.add(b2).doubleValue(); 
             }
          /**
          * 提供精確的減法運算。
          * @param v1 被減數
          * @param v2 減數
          * @return 兩個參數的差
          */ 

             public static double sub(double v1, double v2) 
             { 
                BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
                BigDecimal b2 = new BigDecimal(Double.toString(v2)); 

                return b1.subtract(b2).doubleValue(); 
             }
          /**
          * 提供精確的乘法運算。
          * @param v1 被乘數
          * @param v2 乘數
          * @return 兩個參數的積
          */

             public static double mul(double v1, double v2) 
             { 
                BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
                BigDecimal b2 = new BigDecimal(Double.toString(v2)); 

                return b1.multiply(b2).doubleValue(); 
             }
          /**
          * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到
          * 小數點以后10位,以后的數字四舍五入。
          * @param v1 被除數
          * @param v2 除數
          * @return 兩個參數的商
          */ 

             public static double div(double v1, double v2) 
             { 
                return div(v1, v2, DEF_DIV_SCALE); 
             }
          /**
          * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指
          * 定精度,以后的數字四舍五入。
          * @param v1 被除數
          * @param v2 除數
          * @param scale 表示表示需要精確到小數點以后幾位。
          * @return 兩個參數的商
          */
           
             public static double div(double v1, double v2, int scale) 
             { 
                if (scale < 0) { 
                   throw new IllegalArgumentException("The scale must be a positive integer or zero"); 
                } 
                BigDecimal b1 = new BigDecimal(Double.toString(v1)); 
                BigDecimal b2 = new BigDecimal(Double.toString(v2)); 

                return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); 
             }
          /**
          * 提供精確的小數位四舍五入處理。
          * @param v 需要四舍五入的數字
          * @param scale 小數點后保留幾位
          * @return 四舍五入后的結果
          */ 

             public static double round(double v, int scale) 
             { 
                if (scale < 0) 
                { 
                   throw new IllegalArgumentException("The scale must be a positive integer or zero"); 
                } 
                BigDecimal b = new BigDecimal(Double.toString(v)); 
                BigDecimal one = new BigDecimal("1"); 

                return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); 
             }
          }
          posted @ 2006-06-08 18:51 MyBox 閱讀(405) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 泸水县| 旬邑县| 鸡西市| 湟中县| 平泉县| 伊吾县| 永胜县| 南京市| 砚山县| 沙湾县| 徐州市| 天长市| 巨野县| 长沙市| 砚山县| 竹北市| 安达市| 扎赉特旗| 名山县| 澄迈县| 四会市| 聊城市| 凌海市| 会宁县| 张掖市| 昭通市| 福州市| 阿拉善左旗| 句容市| 隆德县| 滨州市| 夏河县| 沛县| 宕昌县| 磐安县| 东兴市| 西吉县| 秭归县| 石台县| 剑河县| 伊宁市|