2010-06-05 56 views
0

OK所以這裏的代碼:爪哇 - POST VS JDBC

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.URL; 
public class Main { 
    public static void main(String[] args) { 
     try { 
      URL my_url = new URL("http://www.viralpatel.net/blogs/"); 
      BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream())); 
      String strTemp = ""; 
      while(null != (strTemp = br.readLine())){ 
      System.out.println(strTemp); 
     } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

使用這種方法,我可以使用POST和使用PHP腳本GET方法。然後,我可以將PHP腳本用於MySQL數據庫,然後再將數據輸出回java applet。這可能嗎? (和更安全?)

謝謝。

回答

1

您必須在小程序和數據庫之間有一箇中介。如果您已經在編寫Java,那麼我會在其間插入一個servlet。它可以處理GET和POST請求,但也有其他好處:

  1. 你可以安全的一些措施,因爲servlet可以要求提供信用憑證,只允許通過認證的用戶訪問數據庫。您甚至可以添加基於角色的安全性,以允許授權用戶執行某些操作(例如,只有管理員可以寫入數據庫)。
  2. 您可以在將請求參數傳遞迴數據庫之前綁定和驗證請求參數。將此與預先準備的語句組合起來,您的數據庫將更安全,避免SQL注入攻擊。
  3. servlet容器維護一個線程池併爲每個傳入請求分配一個線程。您的應用程序將能夠容納更多的用戶,而不僅僅是一個受連接數限制的簡單客戶端/服務器應用程序。
  4. servlet容器可以維護一個數據庫連接池。這將有助於提高您的應用程序的響應速度,因爲它可以跨所有請求傳播創建連接的成本。
+0

爲什麼我不能只在PHP頁面上執行mysql工作並顯示java applet? – nn2 2010-06-06 04:17:41

2

絕對可以連接到中間腳本。爲此,您可以使用apache http components

您不應該使用小應用程序中的JDBC連接到遠程數據庫,因爲有人會讀取證書並「破解」數據庫。

如果您想要一個類似的想法更好的方法 - 製作REST API。

+0

我寧願使用POST和GET請求來連接到我的MYSQL數據庫......那很好嗎? – nn2 2010-06-05 05:53:01

+2

您無法通過HTTP連接到MySQL。 – Bozho 2010-06-05 06:03:21