風雨無阻

          2008年4月16日

          Jvm工作原理學習筆記

          class loader 加載 class file 到內存
          jvm內存包括: method area(存放class name, class path , 類修飾符等信息), java stack(每一個線程單獨有個stack),java heap(存放對象的數據,數組數據等,被所有線程共享的), pc寄存器(每一個線程單獨有個pc寄存器,用于存放下一步指令),本地方法棧。

          java 堆 可 分為三部分:Perm,Tenured,Yong區。可以通過參數來配置空間大小:

          -Xms :指定了JVM初始啟動以后初始化內存

          -Xmx:指定JVM堆得最大內存,在JVM啟動以后,會分配-Xmx參數指定大小的內存給JVM,但是不一定全部使用,JVM會根據-Xms參數來調節真正用于JVM的內存

           Perm Generation

          -XX:PermSize=16M -XX:MaxPermSize=64M

          posted @ 2014-02-10 18:01 秋楓故事 閱讀(250) | 評論 (0)編輯 收藏

          Ajax Post提交

          jQuery.post( url, [data], [callback], [type] ) :使用POST方式來進行異步請求


          參數:

          url (String) : 發送請求的URL地址.

          data (Map) : (可選) 要發送給服務器的數據,以 Key/value 的鍵值對形式表示。

          callback (Function) : (可選) 載入成功時回調函數(只有當Response的返回狀態是success才是調用該方法)。

          type (String) : (可選)官方的說明是:Type of data to be sent。其實應該為客戶端請求的類型(JSON,XML,等等)

          這是一個簡單的 POST 請求功能以取代復雜 $.ajax 。請求成功時可調用回調函數。如果需要在出錯時執行函數,請

          使用 $.ajax。示例代碼:

           var con = $('#content').val();//待提交的數據

              $.post("checkContent.action",{"mess.content":con},
              function (data){
            
             if(data != "")//有非法敏感字
              {  
               alert(data);
               $('#content').focus();
              }
            },"html");


          點擊提交:

          posted @ 2009-09-03 14:42 秋楓故事 閱讀(3122) | 評論 (4)編輯 收藏

          xmlns:XML命名空間

          以下轉載自:
          http://hi.baidu.com/tianhesj/blog/item/0dd9718d32be4011b21bbacc.html

          Namespaces翻譯為命名空間。命名空間有什么作用呢?當我們在一個XML文檔中使用他人的或者多個DTD文件,就會出現這樣的矛盾:因為XML中標識都是自己創建的,在不同的DTD文件中,標識名可能相同但表示的含義不同,這就可能引起數據混亂。
          比如在一個文檔<table>wood table</table>中<table>表示桌子,
          而在另一個文檔<table>namelist</table>中<table>表示表格。如果我需要同時處理這兩個文檔,就會發生名字沖突。
          了解決這個問題,我們引進了namespaces這個概念。namespaces通過給標識名稱加一個網址(URL)定位的方法來區別這些名稱相同的標識。
          Namespaces同樣需要在XML文檔的開頭部分聲明,聲明的語法如下:
          <document xmlns:yourname='URL'>
          其中yourname是由你定義的namespaces的名稱,URL就是名字空間的網址。
          假設上面的"桌子<table>"文檔來自http://www.zhuozi.com,我們就可以聲明為
          <document xmlns:zhuozi='http://www.zhuozi.com'>;
          然后在后面的標識中使用定義好的名字空間:
          <zhuozi:table>wood table</table>
          這樣就將這兩個<table>區分開來。注意的是:設置URL并不是說這個標識真的要到那個網址去讀取,僅僅作為一種區別的標志而已。


          命名沖突
          因為XML文檔中使用的元素不是固定的,那么兩個不同的XML文檔使用同一個名字來描述不同類型的元素的情況就可能發生。而這種情況又往往會導致命名沖突。請看下面兩個例子

          這個 XML 文檔在table元素中攜帶了水果的信息:

          <table>
          <tr>
          <td>Apples</td>
          <td>Bananas</td>
          </tr>
          </table>
          這個 XML 文檔在table元素中攜帶了桌子的信息(家具,不能吃的哦):

          <table>
          <name>African Coffee Table</name>
          <width>80</width>
          <length>120</length>
          </table>

          如果上面兩個XML文檔片斷碰巧在一起使用的話,那么將會出現命名沖突的情況。因為這兩個片斷都包含了<table>元素,而這兩個table元素的定義與所包含的內容又各不相同。


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

          使用前綴解決命名沖突問題
          下面的XML文檔在table元素中攜帶了信息:

          <h:table>
          <h:tr>
          <h:td>Apples</h:td>
          <h:td>Bananas</h:td>
          </h:tr>
          </h:table>

          下面的XML文檔攜帶了家具table的信息:

          <f:table>
          <f:name>African Coffee Table</f:name>
          <f:width>80</f:width>
          <f:length>120</f:length>
          </f:table>

          現在已經沒有元素命名沖突的問題了,因為這兩個文檔對各自的table元素使用了不同的前綴,table元素在兩個文檔中分別是(<h:table> 和<f:table>)。

          通過使用前綴,我們創建了兩個不同的table元素。


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

          使用命名空間
          下面的XML文檔在table元素中攜帶了信息:

          <h:table xmlns:h="http://www.w3.org/TR/html4/">
          <h:tr>
          <h:td>Apples</h:td>
          <h:td>Bananas</h:td>
          </h:tr>
          </h:table>

          下面的XML文檔攜帶了家具table的信息:

          <f:table xmlns:f="http://www.w3schools.com/furniture">
          <f:name>African Coffee Table</f:name>
          <f:width>80</f:width>
          <f:length>120</f:length>
          </f:table>

          在上面兩個例子中除了使用前綴外,兩個table元素都使用了xmlns屬性,使元素和不同的命名空間關聯到一起。


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

          命名空間屬性
          命名空間屬性一般放置在元素的開始標記處,其使用語法如下所示:

          xmlns:namespace-prefix="namespace"

          在上面的例子中,命名空間定義了一個Internet 地址:

          xmlns:f="http://www.w3schools.com/furniture"

          W3C 命名規范聲明命名空間本身就是一個統一資源標示符,Uniform Resource Identifier (URI)。

          當我們在元素的開始標記處使用命名空間時,該元素所有的子元素都將通過一個前綴與同一個命名空間相互關聯。

          注意:用來標識命名空間的網絡地址并不被XML解析器調用,XML解析器不需要從這個網絡地址中查找信息,該網絡地址的作用僅僅是給命名空間一個唯一的名字,因此這個網絡地址也可以是虛擬的,然而又很多公司經常把這個網絡地址值象一個真實的Web頁面,這個地址包含了關于當前命名空間更詳細的信息。
          可以訪問http://www.w3.org/TR/html4/.


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

          統一資源標識符
          通用資源標識符(A Uniform Resource Identifier (URI))是一個標識網絡資源的字符串。最普通的URI應該是統一資源定位符Uniform Resource Locator (URL)。URL用于標識網絡主機的地址。另一方面,另一個不常用的URI是通用資源名字Universal Resource Name (URN)。在我們的例子中,一般使用的是URLs。

          既然前面的例子使用的URL地址來標識命名空間,我們可以確信這個命名空間是唯一的。


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

          默認的命名空間
          定義一個默認的XML命名空間使得我們在子元素的開始標記中不需要使用前綴。他的語法如下所示:

          <element xmlns="namespace">

          下面的XML文檔在table元素中包含了水果的信息:

          <table xmlns="http://www.w3.org/TR/html4/">
          <tr>
          <td>Apples</td>
          <td>Bananas</td>
          </tr>
          </table>

          下面的XML文檔包含了家具table的信息:

          <table xmlns="http://www.w3schools.com/furniture">
          <name>African Coffee Table</name>
          <width>80</width>
          <length>120</length>
          </table>

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

          使用命名空間
          檔開始使用XSL的時候,就會發現命名空間使用的是如此頻繁。XSL樣式單主要用于將XML文檔轉換成類似于HTML文件的格式。

          如果看一下下面的XSL文檔,就會發現有很多標記都是HTML標記。那些標記并不是HTML標記,是加了前綴的XSL,這個XSL前綴由命名空間"http://www.w3.org/TR/xsl"所標識:

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/xsl">
          <xsl:template match="/">
          <html>
          <body>
          <table border="2" bgcolor="yellow">
          <tr>
          <th>Title</th>
          <th>Artist</th>
          </tr>
          <xsl:for-each select="CATALOG/CD">
          <tr>
          <td><xsl:value-of select="TITLE"/></td>
          <td><xsl:value-of select="ARTIST"/></td>
          </tr>
          </xsl:for-each>
          </table>
          </body>
          </html>
          </xsl:template>
          </xsl:stylesheet>


          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yc_8301/archive/2008/11/19/3335738.aspx

          posted @ 2009-08-04 10:46 秋楓故事 閱讀(1324) | 評論 (0)編輯 收藏

          關于表單中的重置按鈕

          表單中有一個type=reset的button,可以將表單中的數據重置為初始表單的數據,但如果表單中有一些“單選”或“多選”框,其默認值是通過javascript腳本控制的;這種情況通過reset按鈕不會重置為初始狀態,所以不能簡單的調用reset自帶按鈕,解決方法:將重置按鈕設為普通按鈕,在onclick方法中,選調用form.reset()方法,然后再調用javascript腳本

          posted @ 2009-05-08 11:37 秋楓故事 閱讀(2534) | 評論 (1)編輯 收藏

          myeclipse連接oracle出現ora-12705錯誤的解決辦法

          我用的myeclipse 6.0版本,oracle是10g版本,在連接的時候出現了以下問題

           java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
          ORA-12705: Cannot access NLS data files or invalid environment specified

          一開始以為是驅動程序的問題,其實不是,只需在eclipse目錄下找到eclipse.ini文件,把

          Duser.language=en  改成 Duser.language=zh就行了。

          有可能大家出現的問題不一樣,按我的方法有可能不好使,我寫出來僅供大家參考,因為當時為解決這問題,花了不少時間,希望大家少走彎路

          posted @ 2009-04-28 17:40 秋楓故事 閱讀(207) | 評論 (0)編輯 收藏

          摘一部電影中的內容


              我有一把白色塑膠雨傘。買的時候喜歡它雪白可愛,瘦瘦長長,簡直像個鶴立雞群的美女。可惜這種美麗偏偏不耐看,風吹雨打久了,顏色變黃,還多了雀斑一樣的污跡。而且瘦長是沒用的,哪里像折傘這么善解人意。于是,我開始制造各種機會。 趁著下雨帶它出門,左擱一會兒,右放一下,希望一下子大意忘了拿,讓它自動消失,大家無痛分手。我就可以理直氣壯買一把新的,多好!
          失寵的人通常最敏感。 有一天,它突如其來消失了,完全不用花我任何心思。傘也有它的自尊。問題是,等一等,我還沒有準備好。不行,它不可以沒經我的同意就玩失蹤。我便一心一意要找它回來,花盡心思去想,到底在哪里弄丟的呢?書店,餐廳還是公共汽車地鐵呢?
          真是峰回路轉,沒想到在戲院把它找回來,小別重逢,它苦著副臉在等我來新發現。重拾舊歡,大團圓結局。 換一個角度來看,如果我失敗了,找不到它,它永遠消失了,淡淡的遺憾感覺,會不會更合我心意?
          人世間的破鏡重圓,大概都是一言難盡。

          posted @ 2009-04-23 09:15 秋楓故事 閱讀(213) | 評論 (0)編輯 收藏

          group by 。。。

           select t2.*,t3.ncount from 
          (select groupid, count(id) as ncount  from t_txlEmploy group by groupid) t3, t_txlgroup t2
          where  t2.id=t3.groupid(+)
          group by t2.id,t3.groupid

          構架一張t3表,字段為“集團編號”,“集團用戶數”

          然后用“集團表”和t3表再關聯

          posted @ 2009-04-22 16:37 秋楓故事 閱讀(237) | 評論 (0)編輯 收藏

          Spring獲取ApplicationContext的正確方式

          前兩天聯華對單系統頻頻出現out of memory的問題,經過層層分析,終于弄明白原來瓶頸出現在Spring獲取Bean那一步上。以前的做法是在delegate層ApplicationContext context = new ClassPathXmlApplicationContext("Compare.xml"); 這樣我把log4j的debug打開后發現,每做1步操作的時候系統都會重新加載這個xml,重新創建Bean的實例,重新獲取url-mapping,這無疑是個及其錯誤的方式。      研究后發現正確的使用方式是:      首先在web.xml里配置ApplicationContext      <context-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>/WEB-INF/applicationContext.xml</param-value>
               </context-param>     <listener>
                    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
               </listener>     然后在Action中編寫如下代碼得到Context,(我是覆蓋了Struts Action的setServlet方法,也許還有更好的方法)。     public void setServlet(ActionServlet servlet){
                   super.setServlet(servlet);
                   ServletContext servletContext = servlet.getServletContext();
                  WebApplicationContext wac =    WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
                   // get yours beans     }     這樣在啟動服務時已經加載了xml中的配置,而不用每次都重新加載,大大提高了系統的效率

          posted @ 2009-04-17 16:45 秋楓故事 閱讀(1019) | 評論 (0)編輯 收藏

          suse硬盤安裝(網絡收集)

          事先,把你的硬盤劃出 10G左右的空閑空間!

          1.下載suse安裝光盤,準備好8G左右的空間,最好是ntfs格式的。現在有 10.1正式版和10.2的beta 2版,2006年12月7號,10.2就除正式版了!然后將五張光盤全部解壓,加壓到根目錄的一個文件夾下,比如X:\suse\

          2.找到解壓出的第一張光盤linux和initrd文件,放在根目錄下.

          32位的路徑應該是 x:\suse\SUSE-Linux-10.1-Remastered-x86_64-CD1\boot\i386\loader\

          64位的路徑是:X:\suse\SUSE-Linux-10.1-Remastered-x86_64-CD1\boot\x96_64\loader\

          3.下載Grub for dos。下載網址:http://download.it168.com/14/1411/33307/33307_4.shtml

          http://grub4dos.sourceforge.net

          4.將下載的grub for dos 解壓到C盤可能會提示覆蓋什么profile.sys文件,直接替換就行。

          5.改boot.ini文件,先把boot.ini文件的隱藏屬性給去掉!

          把boot.ini文件用記事本打開在最下添加這么一行

          C:\GRLDR="GRUB"

          然后保存,

          6.下一步就是重啟系統了,當要選擇要啟動的系統時,選擇grub,找到類似 commanderline ,按下enter,進入dos 提示符狀態下,

          輸入 find /linux 回車,此時會顯示

          hd(0,6)——(肯定會有不同,請看下面注釋

          kernel hd(0,6)/linux回車

          initrd hd(0,6)/initrd回車

          boot回車

          注釋:hd(0,6)   6是你的分區,根據你的分區不同,這個數字會不同,0表示是第一塊硬盤。)

          進入圖形界面,

          會提示類似 no cd in your cd drive的語句,不用管他,選擇back

          7.按照提示選擇,都是簡單的英語,完全可以搞定的(抄襲linuxsir.org幾位大俠的話。。呵呵)

          8.等到要你指定安裝文件的位置的時候,你把你剛才解壓的suse的幾張光盤的位置填進去就行了,然后回車,會提示選擇安裝語言,鍵盤鼠標什么的,按照提示選就ok了。大家安裝時候注意分區,不要采用它默認的分區方式,那樣的你的windows操作系統就會被它給刪掉了。

          再羅嗦一點,Suse的分區方式沒有fedora和ubuntu做的好,后面的兩個全部可以手動分區,而suse只有切換到專家模式下才能更改分區,剛開始,搞的我又點郁悶。

          等待安裝完成。。。。大約40 ~ 1個小時。不要著急!中間還要填root密碼和給機器命名,添加user等操作!

          9.安裝完成后,重啟,進入系統,user不用填密碼自動登錄系統(現在我還不知道怎么才能不讓它自動登錄)

          祝大家好運。。。。

          ——部分內容來自linuxsir.org,感謝Thruth大俠!

           

          posted @ 2008-11-25 13:51 秋楓故事 閱讀(444) | 評論 (0)編輯 收藏

          關于ORACLE中的DECODE

               摘要: 關于ORACLE中的DECODE- -                               ...  閱讀全文

          posted @ 2008-11-13 15:59 秋楓故事 閱讀(2931) | 評論 (0)編輯 收藏

          Spring MVC 入門(轉)

          如果你手上有一本《Spring in Action》, 那么你最好從第三部分"Spring 在 Web 層的應用--建立 Web 層"開始看, 否則那將是一場惡夢!

              首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 應用程序接收到 http://localhost:8088/hello.do(請求路徑為/hello.do) 的請求后, Spring 將這個請求交給一個名為 helloController 的程序進行處理, helloController 再調用 一個名為 hello.jsp 的 jsp 文件生成 HTML 代碼發給用戶的瀏覽器顯示. 上面的名稱(/hello.do, helloController, hello.jsp) 都是變量, 你可以更改.

              在 Spring MVC 中, jsp 文件中盡量不要有 Java 代碼, 只有 HTML 代碼和"迭代(forEach)"與"判斷(if)"兩個jstl標簽. jsp 文件只作為渲染(或稱為視圖 View)模板使用.

              好了, 我們開始吧. 首先我們需要一個放在 WEB-INF 目錄下的 web.xml 文件:

          web.xml:
           <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4"
           xmlns="http://java.sun.com/xml/ns/j2ee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
           http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
           <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
             /WEB-INF/database.xml
             /WEB-INF/applicationContext.xml
            </param-value>
           </context-param>
           
           <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
           </listener>
           
           <filter>
            <filter-name>EncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
             <param-name>encoding</param-name>
             <param-value>UTF-8</param-value>
            </init-param>
           </filter>
           
           <filter-mapping>
            <filter-name>EncodingFilter</filter-name>
            <url-pattern>*.do</url-pattern>
           </filter-mapping>
           
           <servlet>
            <servlet-name>test</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
           </servlet>
           
           <servlet-mapping>
            <servlet-name>test</servlet-name>
            <url-pattern>*.do</url-pattern>
           </servlet-mapping>
           
           <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
            <welcome-file>index.html</welcome-file>
           </welcome-file-list>
           
           <jsp-config>
            <taglib>
             <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
             <taglib-location>/WEB-INF/c.tld</taglib-location>
            </taglib>
            <taglib>   
             <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
             <taglib-location>/WEB-INF/fmt.tld</taglib-location>
            </taglib>
           </jsp-config>
          </web-app>
          它配置了以下功能:
          • 配置 DispatcherServlet (servlet 標簽), 它是一個 Java Servlet 程序. 我們將它命名為 test. 然后我們再配置 Servlet 映射(test-mapping 標簽), 也就是你希望哪些請求被DispatcherServlet處理. 這里, 我們設置后綴名為 do(*.do) 的所有URL請求都被名為 test 的 DispatcherServlet 的程序處理. 選擇 .do 只是一個習慣,但是你不要選擇 .html! 雖然《Spring in Action》選擇了 .html, 但是那是一種非常糟糕的作法, 特別是你整合 ApacheTomcat 的時候.

          • 配置 CharacterEncodingFilter (filter 標簽), 否則你會發現中文亂碼. 因為我的 jsp 和 html 文件都是 UTF-8 編碼的, 所以我在 param-value 標簽中設置了 UTF-8. 估計你使用的是 GB2312 或者 GBK, 立即轉到 UTF-8 上來吧.

          • 分解配置文件. context-param 標簽指明我們的配置文件還有 /WEB-INF/database.xml 和 /WEB-INF/applicationContext.xml. ContextLoaderListener(listener 標簽) 由此得知配置文件是哪些, 它會將它們載入.

          因為我們將 DispatcherServlet 命名為test, 所以我們在 WEB-INF 目錄下建立一個名為 test-servlet.xml 的文件:

          test-servlet.xml:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
           <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
           </bean>
           
           <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
             <props>
              <prop key="/hello.do">helloController</prop>
             </props>
            </property>
           </bean>
           <bean id="helloController" class="com.ecnulxq.test.HelloController">
           </bean>
          </beans>
          它配置了以下功能:
          
          • 配置 InternalResourceViewResolver, 它是 jsp 渲染模板的處理器. 如果你告訴 InternalResourceViewResolver 處理一個名為 hello 的模板時, 它會渲染 /WEB-INF/jsp/hello.jsp 文件. 把 jsp 文件放到 /WEB-INF/jsp/ 目錄下是被鼓勵的, 這樣可以防止用戶不經過 Controller 直接訪問 jsp 文件從而出錯(有些頑皮的人很喜歡這樣做).

          • 配置 SimpleUrlHandlerMapping, 在上面的配置文件中, /hello.do 的請求將被 helloController 處理. "/hello.do"和"helloController" 是變量, 你可以更改. 但是你注意到了嗎, hello.do 以 .do 作為后綴名. 如果這里(本文的條件下)你不使用.do 作為后綴名, 就沒有程序來處理這個請求了. 因為 DispatcherServlet 將收到的請求轉交給 SimpleUrlHandlerMapping, DispatcherServlet 收不到的請求, SimpleUrlHandlerMapping 當然也收不到了. 你可以在 props 標簽內配置多個 prop 標簽.

          • 我們將在后面編寫com.ecnulxq.test.HelloController類.

          上面, 我們在 web.xml 文件中告訴 ContextLoaderListener, 我們還有另外兩個配置文件 /WEB-INF/database.xml 和 /WEB-INF/applicationContext.xml.

          applicationContext.xml:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

          <beans>
           <bean id="propertyConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
             <list>
              <value>/WEB-INF/jdbc.properties</value>
             </list>
            </property>
           </bean>

          </beans>

          它配置了以下功能:

          • 讀取 /WEB-INF/jdbc.properties 文件. 你可以在 list 標簽中配置多個 value 標簽.

          database.xml:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" ">
           
          <beans>
          <!-- Remove this if your database setting is fine.
            <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
              <property name="driverClassName" value="${jdbc.driverClassName}"/>
              <property name="url" value="${jdbc.url}"/>
              <property name="username" value="${jdbc.username}"/>
              <property name="password" value="${jdbc.password}"/>
            </bean>
          -->
            <!-- Transaction manager for a single JDBC DataSource
            <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="dataSource"/>
            </bean>
             -->
            <!--
            <bean id="attributeManager" class="com.ideawu.core.AttributeManager">
              <property name="dataSource" ref="dataSource"/>
            </bean>
            -->
          </beans>
          

          它配置了以下功能(不過,已經注釋掉了):

          • 配置數據庫連接. 類似${jbbc.url}是一種訪問變量的方法. 我們可以從 /WEB-INF/jdbc.properties 中找到這個變量的值. 如果你的數據庫已經配置好, 就將第一個注釋去掉.

          jdbc.properties:
          jdbc.driverClassName=com.mysql.jdbc.Driver
          jdbc.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8
          jdbc.username=root
          jdbc.password=root
          
          現在, 我們來編寫 Java 代碼吧.
           
          package com.ecnulxq.test;


          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;



          import org.springframework.web.servlet.ModelAndView;
          import org.springframework.web.servlet.mvc.Controller;



          /**
           * @author lxq ecnulxq@163.com
           * @version 創建時間:Oct 12, 2007 類說明
           *
           */
          public class HelloController implements Controller {



           public ModelAndView handleRequest(HttpServletRequest request,
             HttpServletResponse response) throws Exception {
            request.setAttribute("hello_1", "你好!Spring!");
            request.setAttribute("hello_2", "Hello!Spring!");
            return new ModelAndView("hello");
           }



          }


          return new ModelAndView("hello"); 告訴 InternalResourceViewResolver jsp 模板的名字叫作 hello. request.setAttribute() 設置的對象我們可以在 jsp 文件中使用.

          hello.jsp:

          <%@ page contentType="text/html; charset=UTF-8"%>
          <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
           <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Hello World!</title>
           </head>
           <body>



            <h2>
             ${hello_1}
            </h2>



            <h2>
             ${hello_2}
            </h2>



           </body>
          </html>

          posted @ 2008-06-05 12:46 秋楓故事 閱讀(902) | 評論 (1)編輯 收藏

          JSTL詳解(一轉)

          7 Functions 標簽庫

                  稱呼 Functions 標簽庫為標簽庫,倒不如稱呼其為函數庫來得更容易理解些。因為 Functions 標簽庫并沒有提供傳統的標簽來為 JSP 頁面的工作服務,而是被用于 EL 表達式語句中。在 JSP2.0 規范下出現的 Functions 標簽庫為 EL 表達式語句提供了許多更為有用的功能。 Functions 標簽庫分為兩大類,共 16 個函數。

          長度函數: fn:length

          字符串處理函數: fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、 fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、 fn:startsWith 、 fn:substring 、 fn:substringAfter 、 fn:substringBefore 、 fn:toLowerCase 、 fn:toUpperCase 、 fn:trim

          以下是各個函數的用途和屬性以及簡單示例。

          9.7.1  長度函數 fn:length 函數

               長度函數 fn:length 的出現有重要的意義。在 JSTL1.0 中,有一個功能被忽略了,那就是對集合的長度取值。雖然 java.util.Collection 接口定義了 size 方法,但是該方法不是一個標準的 JavaBean 屬性方法(沒有 get,set 方法),因此,無法通過 EL 表達式“ ${collection.size} ”來輕松取得。

          fn:length 函數正是為了解決這個問題而被設計出來的。它的參數為 input ,將計算通過該屬性傳入的對象長度。該對象應該為集合類型或 String 類型。其返回結果是一個 int 類型的值。下面看一個示例。

          <%ArrayList arrayList1 = new ArrayList();

                                      arrayList1.add("aa");

                                      arrayList1.add("bb");

                                      arrayList1.add("cc");

          %>

          <%request.getSession().setAttribute("arrayList1", arrayList1);%>

          ${fn:length(sessionScope.arrayList1)}

          假設一個 ArrayList 類型的實例“ arrayList1 ”,并為其添加三個字符串對象,使用 fn:length 函數后就可以取得返回結果為“ 3 ”。

          9.7.2  判斷函數 fn:contains 函數

          fn:contains 函數用來判斷源字符串是否包含子字符串。它包括 string 和 substring 兩個參數,它們都是 String 類型,分布表示源字符串和子字符串。其返回結果為一個 boolean 類型的值。下面看一個示例。

          ${fn:contains("ABC", "a")}<br>

          ${fn:contains("ABC", "A")}<br>

          前者返回“ false ”,后者返回“ true ”。

          9.7.3 fn:containsIgnoreCase 函數

          fn:containsIgnoreCase 函數與 fn:contains 函數的功能差不多,唯一的區別是 fn:containsIgnoreCase 函數對于子字符串的包含比較將忽略大小寫。它與 fn:contains 函數相同,包括 string 和 substring 兩個參數,并返回一個 boolean 類型的值。下面看一個示例。

          ${fn:containsIgnoreCase("ABC", "a")}<br>

          ${fn:containsIgnoreCase("ABC", "A")}<br>

          前者和后者都會返回“ true ”。

          9.7.4  詞頭判斷函數 fn:startsWith 函數

          fn:startsWith 函數用來判斷源字符串是否符合一連串的特定詞頭。它除了包含一個 string 參數外,還包含一個 subffx 參數,表示詞頭字符串,同樣是 String 類型。該函數返回一個 boolean 類型的值。下面看一個示例。

          ${fn:startsWith ("ABC", "ab")}<br>

          ${fn:startsWith ("ABC", "AB")}<br>

          前者返回“ false ”,后者返回“ true ”。

          9.7.5  詞尾判斷函數 fn:endsWith 函數

          fn:endsWith 函數用來判斷源字符串是否符合一連串的特定詞尾。它與 fn:startsWith 函數相同,包括 string 和 subffx 兩個參數,并返回一個 boolean 類型的值。下面看一個示例。

          ${fn:endsWith("ABC", "bc")}<br>

          ${fn:endsWith("ABC", "BC")}<br>

          前者返回“ false ”,后者返回“ true ”。

          9.7.6  字符實體轉換函數 fn:escapeXml 函數

          fn:escapeXml 函數用于將所有特殊字符轉化為字符實體碼。它只包含一個 string 參數,返回一個 String 類型的值。

          9.7.8  字符匹配函數 fn:indexOf 函數

          fn:indexOf 函數用于取得子字符串與源字符串匹配的開始位置,若子字符串與源字符串中的內容沒有匹配成功將返回“ -1 ”。它包括 string 和 substring 兩個參數,返回結果為 int 類型。下面看一個示例。

          ${fn:indexOf("ABCD","aBC")}<br>

          ${fn:indexOf("ABCD","BC")}<br>

          前者由于沒有匹配成功,所以返回 -1 ,后者匹配成功將返回位置的下標,為 1 。

          posted @ 2008-06-05 09:49 秋楓故事 閱讀(226) | 評論 (0)編輯 收藏

          hibernate二級緩存的實現

               摘要: 對于Hibernate這類ORM而言,緩存顯的尤為重要,它是持久層性能提升的關鍵.簡單來講Hibernate就是對JDBC進行封裝,以實現內部狀態的管理,OR關系的映射等,但隨之帶來的就是數據訪問效率的降低,和性能的下降,而緩存就是彌補這一缺點的重要方法.     緩存就是數據庫數據在內存中的臨時容器,包括數據庫數據在內存中的臨時拷貝,它位于數據庫與數...  閱讀全文

          posted @ 2008-04-16 18:17 秋楓故事 閱讀(1762) | 評論 (1)編輯 收藏

          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          • 隨筆 - 63
          • 文章 - 0
          • 評論 - 14
          • 引用 - 0

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          新聞檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阿瓦提县| 西盟| 广南县| 博客| 蕲春县| 旬阳县| 定西市| 昭苏县| 海城市| 灌南县| 丹江口市| 南宫市| 邵东县| 深泽县| 凤台县| 巢湖市| 汉源县| 全州县| 龙山县| 郓城县| 普陀区| 陇南市| 仙桃市| 永川市| 潞城市| 民勤县| 招远市| 唐海县| 汉源县| 尖扎县| 永顺县| 民勤县| 朝阳区| 县级市| 景德镇市| 栾城县| 沙洋县| 华蓥市| 错那县| 澎湖县| 灵寿县|