--- tags: Java --- # 2/12 Properties可用來取得參數 ``` Properties props = System.getProperties(); Set entries = props.entrySet(); ``` 絕對路徑改成相對路徑寫法會多了很多彈性。 ``` //Class: 取得類別路徑, 內有.getResourceAsStream()找到類別同層的檔案 Class _class = Exp0212_03.class; String fileName = "jdbc-config.properties"; try(InputStream is = _class.getResourceAsStream(fileName)){ Properties props = new Properties(); //load讀取檔案資料 props.load(is); ``` properties檔會跟取用的類放在同一層。 Access level(存取等級): public、protected、default、private 建議實務上要一個一個import進去,才能增加可讀性,才能找的到程式的出處。 2/12 Q:XSS攻擊,又稱跨網站腳本攻擊 Ans: XSS泛指惡意攻擊者在Web網頁上插入惡意html代碼,以達到特殊目的(控制網站元素、取走cookies),簡單來說就是駭客修改網頁內容,讓user去點擊並回傳資料。 Q:如何防止XSS攻擊跟產生攻擊 Q:在程式中加connection pool並解釋connection pool Ans: 因為資料庫連線是件耗時間及資源的動作,故使用連線池,connection pool作為 connection 的「快取區」,基本的使用流程是在程式一啟動就向資料庫建立一定數量的連線(依設定),並存放於 pool 裡,後續程式 getConnection()時是直接向 connection pool 取用,用完後呼叫 connection.close() 就會放回 pool Q:實作DAO並把資料庫連結查詢資料的程式碼改成那樣 Ans: DAO(DataAccessObjects): 把資料庫操作都封裝起來。1. DAO接口: 會使用介面去寫方法的名稱。2. DAO實作: 實作介面並撰寫方法。3. 實體類:撰寫型別跟名稱並做getter&setter。4. 連結資料庫的類:撰寫連接資料庫,跟關閉連線的方法。 2/17 Q: C3P0 Ans: c3p0是一個開源的JDBC連線池,它實現了資料來源和JNDI繫結,支援JDBC3規範和JDBC2的標準擴充套件。c3p0一般是與Hibernate,Spring等框架一塊使用的,當然也可以單獨使用。 dbcp沒有自動回收空閒連線的功能,c3p0有自動回收空閒連線功能。 使用c3p0需要匯入c3p0.jar、mchange-commons-.jar,如果操作的是Oracle資料庫,那麼還需要匯入c3p0-oracle-thin-extras-pre1.jar。 Q: ConnectPool該如何確認連線世不同的