---
# System prepended metadata

title: 2/12
tags: [Java]

---

---
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該如何確認連線世不同的







