| navigator.userAgent |
- Apr 16 Tue 2013 09:41
-
各瀏覽器的 navigator.userAgent 傳回來的值
- Apr 02 Tue 2013 14:40
-
在使用 Spring 的 Web 專案中的一般類別,如何取得由 Spring 實例化出來的物件
在使用 Spring 的 Web 專案中的一般類別 (即未宣告在 applicationContext.xml 的類別),如何取得由 Spring 實例化出來的物件?
請依照下例步驟執行:
- 取得 javax.servlet.ServletContext 物件
如果是 struts2 專案,可使用【 org.apache.struts2.ServletActionContext.getServletContext() 】來取得。
取得 org.springframework.context.ApplicationContext 物件
- Aug 29 Wed 2012 10:30
-
一鍵下載 - Chrome 限定
這幾天找資料時無意間看到了這個網頁
http://eligrey.com/demos/FileSaver.js/
上面除了應用了 File API 之外,另外讓我感興趣的就是按一下按鍵就能下載。
- May 07 Mon 2012 10:22
-
Test Geolocation API
- Oct 04 Tue 2011 14:26
-
DOM element 屬性 scroll、client 與 offset 的差異(以 width 為例)
JavaScript 最常用的用法之一為操作頁面上的 DOM elemnt,而 DOM element 屬性中,同樣都是寬度,就有區分為 offsetWidth、clientWidth 與 offsetWidth 這幾種,而這之間的差別如下:
- scrollWidth :
element 的真正寬度,會依其內容而有所增加,並不一定會是設定在 style 中的 width 的值。
其值也不包含自身的邊線 (border) 寬度,但若是其內容是一個比自身還寬 element,
則在 Firefox 與 Chrome 中,會計算內容 element 的 border 寬度,而在 IE 中則不會 (請看範例)。
- Mar 15 Tue 2011 09:38
-
YUI Builder 簡介與安裝
YUI Builder 是 Yahoo 所開發的一套基於 ANT 技術的 YUI 元件(Component) build tool。
它能夠為 YUI 元件開發者,提供以下幾個建構功能
- 對 Javascript 原碼進行「壓縮(YUI Compress)」 與「校驗 (JSLint)。
- 對 CSS 原碼進行「壓縮(YUI Compress)」。
- 將多個 JS 檔或 CSS 檔合併成單一個檔案 (在 YUI3 中,通常會將所有子模組的 JS 檔合併成父模組同名的一個 js 檔)。
- Dec 02 Thu 2010 15:20
-
當 Html Tag 被包在 <a> 之中時,使用 innerHTML 在 Firefox 上的詭異現象與解決方式
問題描述:
當頁面上有某個 Tag 被包在 A Tag 之內 (例如:<a><p>文字</p></a>),若取得此 Tag 並使用 innerHTML 來填入字串時,Firefox 會很雞婆的在填入的字串前後自動加上 A Tag。
例如:我們要取得如下結構中的 P Tag 後,用 innerHTML 填入文字
<a id='link'><p id="text">TEXT</p></a>
var node = document.getElementById('text');
- Sep 17 Fri 2010 10:50
-
Struts 2.1 以上版本,在 xml 配置檔的 include tag 已經可以用萬用字元了
最近打算將 Struts 2.0.x 版本直接升到 2.2.1,但如此一來之前為 Struts 2.0.x 所寫的一些能讓 XML 配置檔的 include tag 使用萬用字元的 Class 就無法運作了。
為了讓 Struts 2.2.1 XML 配置檔的 include tag 也能使用萬用字元,所以我又回頭去追原始碼,打算像之前 Struts 2.0.x 版一樣自己來寫一個,但是在追原始碼的過程中,我發現 Struts 2.2.1 本身已經有支援 include tag 使用萬用字元了,於是我在往前回溯到之前一度用過的 Struts 2.1.6,發現在 2.1.6 其實就已經有支援了,雖然我沒有再往前追查 2.1 最早的版本,但我相信 2.1 應該就已經支援了,而且不論如何,至少 2.1.6 確定是有支援配置檔的 include tag 使用萬用字元。
Struts 2 有關讀入並解析 XML 配置檔的程式是在 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider 類別,其中的 loadConfigurationFiles() 方法內可以看到解析 include tag 萬用字元的程式碼。
而負責解析萬用字元與取得的檔名之前是否相符是使用 XWork 的 com.opensymphony.xwork2.util.WildcardHelper 類別,以下是這個類別在處理萬用字元時的規則描述。
- The '*' character is converted to MATCH_FILE, meaning that zero or more characters (excluding the path separator '/') are to be matched.
- Sep 16 Thu 2010 17:39
-
解決使用 AXIS Client 呼叫 AXIS2 Web Service 傳檔案時發生的錯誤
因為專案需要呼叫公司既有的 Web Service 來處理上/下傳檔案,所以先前花了些時間在測試 Web Service 與 Client 端有關於傳檔的寫法,當時是使用 AXIS 的技術。
雖然測試的結果都很 ok,但實際上拿到公司的 Web Service 時,才發現公司是用 AXIS2,一開始也不以為意,依舊用 AXIS 的 Client 是呼叫這個 Web Service,不過結果確很讓人沮喪,因為雖然一般的呼叫都沒問題,但只要呼叫上傳檔案的方法就會丟出錯誤:
『org.apache.axis2.AxisFault: Invalid reference :cid: xxxxxxxxxxxxxxxxx』(其中的 XXXX 是一串文數字,每次都不相同)
雖然打開 Debug 看傳出去的 XML 格式,發現這個 cid 的確在後面有跟著檔案的內容 (格式類似 email 的附件),但是 Web Service 就是不認得,不過如果改用 AXIS2 的 Client 就能很正確的傳送檔案了。
這個問題困擾我一天多了,用咕狗大神雖然咕出不少資料,但是就是找不到這個發生在 AXIS Client 呼叫 AXIS2 Web Service 傳檔時問題的解答,因此只能自已想辦法了,當然改用 AXIS2 的 Client 就能解決,但是笨鳥的脾氣拗,又實在不是很習慣 AXIS2 的 Client 寫法,所以還是滿執意要找出答案。
- Sep 08 Wed 2010 18:09
-
WebService 的傳遞檔案方式 -- DataHandler (範例使用 AXIS)
當我們的 Web Service 有傳遞檔案的需求時,除了使用 byte 陣列之外,還可以使用 javax.activation.DataHandler 這個類別。
要使用這個類別,尚需引入 activation.jar (JAF) 與 mail.jar 這兩個套件。
這裏要注意的是,有些教學網站只教你去 SUN 網站下載 JAF 來使用即可,但其實 JAF 就是我們使用 java mail 時需要引入的 activation.jar 檔,不過這也還好,主要是這些網站並沒說要引入 mail.jar,結果就是在執行時會丟出『java.lang.RuntimeException: No support for attachments』的錯誤,當時的確是造成了笨鳥的困擾,好加在有在別的網站找到原因,不然又不知要被困多久了 ~~ >_<
言歸正傳,由於 javax.activation.DataHandler 類別並不是 Web Service 傳遞協定的標準,因此如果我們像前一篇「利用 Eclipse 簡單建立 AXIS 的 WebService」裏寫的那樣直接用 Eclipse 來幫我們產生並註冊 Web Service 的話,在過程中很有可能會有錯誤的產生(IWAB0399E Error in generating Java from WSDL: java.io.IOException: Type {http://activation.javax}DataHandler is referenced but not defined.
- Sep 03 Fri 2010 16:56
-
利用 Eclipse 簡單建立 AXIS 的 WebService

本篇文章主要是『教導(協助笨鳥記憶)』如何利用 Eclipse 簡單的製作出一個基於 AXIS 的 Web Service 程式。
執行環境
.Eclipse 3.5.1
.JDK 1.5.0.15
.Tomcat 5.5.26
- Aug 30 Mon 2010 16:05
-
[重要] 低於 2.2 版的 Struts2 的重大安全性漏洞之後續 - OGNL 篇
會有這個後續篇,主要是因為笨鳥對於用來攻擊的 OGNL 語法不甚了解,於是想研究看看,再加上在找相關資料的過程中,看到了這篇文章「Struts2 與 Webwork 遠程命令執行漏洞分析」裏提到,光只過濾「\u0023」仍無法堵住這個漏洞,因此在土法鍊鋼的反覆測試與參考上述文章後,有了些心得可以記錄下來。
因為是土法鍊鋼,所以有些地方笨鳥就只能針對觀察到的現象加以描述,而無法用什麼理論來驗證,這個可能要先說在前頭了。
首先就先從 OGNL 談起好了。(本來想一口氣寫完,不過後來發現我沒那麼有毅力,所以還是分兩篇好了)
由於 OGNL 本身就是一個龐大的東西,因此這裏不會講解整個 OGNL,有興趣的請自行上官網看文件,此處只針對攻擊用的語法「Expression Evaluation」,也就是攻擊語法中的圓括弧用法。
所謂的 Expression Evaluation 指的是當 OGNL 表達式中包含了圓括號,且該圓括號前面並沒有點號時,那麼 OGNL 會試著把圓括號前的表達式評價(Evaluation) 結果作為另一個以圓括號內表達式評價結果作為根物件的表達式來進行評價。圓括號前的表達示評價結果可能會是任何的物件,如果是 AST 物件,OGNL 會假設這是從一個表達式解析而來的,並且簡單的去直譯它。如果不是 AST,那麼 OGNL 會把該物件強制轉成 String 後去解析成 AST 物件再去直譯它。