瀏覽器
版本號

Chrome
26.0.1410.43
  navigator.userAgent

大笨鳥 發表在 痞客邦 留言(3) 人氣()

在使用 Spring 的 Web 專案中的一般類別 (即未宣告在 applicationContext.xml 的類別),如何取得由 Spring 實例化出來的物件?

請依照下例步驟執行:

    取得 javax.servlet.ServletContext 物件
    如果是 struts2 專案,可使用【 org.apache.struts2.ServletActionContext.getServletContext() 】來取得。
    取得 org.springframework.context.ApplicationContext 物件

大笨鳥 發表在 痞客邦 留言(0) 人氣()

這幾天找資料時無意間看到了這個網頁

http://eligrey.com/demos/FileSaver.js/

上面除了應用了 File API 之外,另外讓我感興趣的就是按一下按鍵就能下載。

大笨鳥 發表在 痞客邦 留言(0) 人氣()

經度:


緯度:

大笨鳥 發表在 痞客邦 留言(1) 人氣()

JavaScript 最常用的用法之一為操作頁面上的 DOM elemnt,而 DOM element 屬性中,同樣都是寬度,就有區分為 offsetWidth、clientWidth 與 offsetWidth 這幾種,而這之間的差別如下:

    scrollWidth : 
    element 的真正寬度,會依其內容而有所增加,並不一定會是設定在 style 中的 width 的值。
    其值也不包含自身的邊線 (border) 寬度,但若是其內容是一個比自身還寬 element,
    則在 Firefox 與 Chrome 中,會計算內容 element 的 border 寬度,而在 IE 中則不會 (請看範例)。

大笨鳥 發表在 痞客邦 留言(0) 人氣()

YUI Builder 是 Yahoo 所開發的一套基於 ANT 技術的 YUI 元件(Component) build tool。

它能夠為 YUI 元件開發者,提供以下幾個建構功能

  • 對 Javascript 原碼進行「壓縮(YUI Compress)」 與「校驗 (JSLint)。

  • 對 CSS 原碼進行「壓縮(YUI Compress)」。

  • 將多個 JS 檔或 CSS 檔合併成單一個檔案 (在 YUI3 中,通常會將所有子模組的 JS 檔合併成父模組同名的一個 js 檔)。

大笨鳥 發表在 痞客邦 留言(0) 人氣()

問題描述:

當頁面上有某個 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');

大笨鳥 發表在 痞客邦 留言(0) 人氣()

最近打算將 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.

大笨鳥 發表在 痞客邦 留言(0) 人氣()

因為專案需要呼叫公司既有的 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 寫法,所以還是滿執意要找出答案。

大笨鳥 發表在 痞客邦 留言(0) 人氣()

當我們的 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.

大笨鳥 發表在 痞客邦 留言(0) 人氣()

Easy_Step01.jpg

本篇文章主要是『教導(協助笨鳥記憶)』如何利用 Eclipse 簡單的製作出一個基於 AXIS 的 Web Service 程式。

執行環境
  .Eclipse 3.5.1
  .JDK 1.5.0.15
  .Tomcat 5.5.26

大笨鳥 發表在 痞客邦 留言(0) 人氣()

會有這個後續篇,主要是因為笨鳥對於用來攻擊的 OGNL 語法不甚了解,於是想研究看看,再加上在找相關資料的過程中,看到了這篇文章「Struts2 與 Webwork 遠程命令執行漏洞分析」裏提到,光只過濾「\u0023」仍無法堵住這個漏洞,因此在土法鍊鋼的反覆測試與參考上述文章後,有了些心得可以記錄下來。

因為是土法鍊鋼,所以有些地方笨鳥就只能針對觀察到的現象加以描述,而無法用什麼理論來驗證,這個可能要先說在前頭了。

首先就先從 OGNL 談起好了。(本來想一口氣寫完,不過後來發現我沒那麼有毅力,所以還是分兩篇好了)
由於 OGNL 本身就是一個龐大的東西,因此這裏不會講解整個 OGNL,有興趣的請自行上官網看文件,此處只針對攻擊用的語法「Expression Evaluation」,也就是攻擊語法中的圓括弧用法。

所謂的 Expression Evaluation 指的是當 OGNL 表達式中包含了圓括號,且該圓括號前面並沒有點號時,那麼 OGNL 會試著把圓括號前的表達式評價(Evaluation) 結果作為另一個以圓括號內表達式評價結果作為根物件的表達式來進行評價。圓括號前的表達示評價結果可能會是任何的物件,如果是 AST 物件,OGNL 會假設這是從一個表達式解析而來的,並且簡單的去直譯它。如果不是 AST,那麼 OGNL 會把該物件強制轉成 String 後去解析成 AST 物件再去直譯它。

大笨鳥 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。