2013-08-03 37 views
-3

我需要什麼來研究,知道和使用以下項目:Java程序可以成爲網頁JavaScript和數據庫之間的中介嗎?

我想使用JavaScript來顯示地圖,使用googlemaps api,在網頁上。 它會有標記。 標記將是使用經度和緯度的地理定位。經緯度和緯度座標將通過輸入IP到ip-api.com找到,這將給我經度和緯度。這些IP是從數據庫中提取的。該地圖也將顯示在Java程序的jpanel中。

我最大的擔憂和困惑是如何連接到數據庫並獲取數據。我沒有使用JavaScript的經驗,但我聽說在網頁上連接到javascript數據庫是一種不好的做法。是否可以使用我的java程序作爲數據庫和網頁之間的中介來連接,檢索和推送數據?看起來這樣可以保證數據的安全,但我不知道該怎麼做,或者如果可能的話,將數據從java發送到腳本。

也許有人有其他建議嗎?

UPDATE我最初提出的這個問題只是一個普遍的方向感和一個混亂的理解,只是在正確的方向尋找一個點。我的問題不是降級,而是我的問題很愚蠢,或者我沒有嘗試找到答案,下面的答案實際上需要時間來幫助,並能夠引導我到需要去的地方。下次不要這麼快降級這樣一個沒有經驗的明顯程序員,並試圖伸出援助之手。這就是這個社區的目的,也是我喜歡使用它的原因。

+0

是的,這是JSP系統自身體現的一種方式。 – hexafraction

+0

你可能會提供任何文檔,以幫助我理解這個過程@hexafraction?感謝您的輸入 –

+0

無需降級。我沒有很強的編程背景。我只是想學習 –

回答

1

是的,您可以使用服務器端Java代碼作爲中介。使用JavaScript通過JavaScript的XMLHttpRequest對象將數據發佈到HttpServlet。然後處理你的servlet中的數據。

完成數據庫業務後,您可以發送「全部完成!」迴應,由你的JS處理。

我建議閱讀XMLHttpRequest對象。另外,請查看涉及POST數據的HttpServlet示例。

這裏有一個簡單的例子:

JS(工程在IE9 +)

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onload = function(data) { 
    console.log(data); 
}; 
xmlhttp.open("POST", "/servlet", true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.send("fname=Henry&lname=Ford"); 

的Java

public class MyServlet extends HttpServlet { 
    public void doPost(HttpServletRequest req, HttpServletResponse resp) 
     throws IOException, ServletException { 

    String fname = req.getParameter("fname"); 
    // db code here 

    PrintWriter out = resp.getWriter(); 
    out.print("All done!"); 
    } 
} 
2

JavaScript不能直接連接到生活在另一臺服務器上的數據庫;沒有API可以做(除了WebSockets)。你可能想要做的就是在你的JavaScript中使用AJAX,併爲Web服務器編寫一個應用程序,該應用程序用數據庫的答案回答AJAX請求。

這是一個複雜的任務,需要很好的學習;根據你的情況,在編寫HTML/JavaScript部分的時候讓其他人編寫服務器部分可能更實用。如果你確實想花時間學習它,我建議從Spring MVC開始,因爲它使得編寫基於JSON的Web服務變得非常簡單。

2

是,Java可以做到這一點。那麼Python,PHP和其他大多數語言都可以。出於安全原因,使用javascript直接從網頁訪問數據庫是有問題的。不瞭解更多關於這個問題的知識,對Java的限制或經驗很難提供更清晰的方向。如果所有這些對你來說都是新的,那麼我會說你有一個不平凡的工作量來學習如何做到這一點。對於從Java數據庫交互,下面可能會有所幫助:

http://docs.oracle.com/javase/tutorial/jdbc/

下面是一系列使用Java創建REST服務的視頻教程的JavaScript可以通過Ajax交互:

http://www.youtube.com/watch?v=gKBiIWY7FYw

http://www.youtube.com/watch?v=4DY46f-LZ0M

http://www.youtube.com/watch?v=LcZSty50KTw

+0

謝謝,我熟悉java到DB的交互。問題是,現在我必須將javascript引入到我沒有經驗的方程式中。我會觀看這些視頻,感謝您的鏈接 –

0

這裏是我的想法:

  1. 你想存儲IP由於某種原因。您使用數據庫。 (你有那個部分。)

  2. 你想讀取該數據庫。你用「服務器端」代碼來做到這一點。如PHP,ASP或JSP(及其他)。

  3. 想要在WebPage和Java桌面程序中顯示信息。你做到這一點與JavaScript和Java的好。(你也得到了一部分)

...

現在從1至2(讀取數據庫中的數據)的數據庫提供了一個語言(SQL ),並使用該語言檢索數據。 (當然數據庫也有用戶名/密碼。)

從2到3,你可以創建一些類型的API來返回你的網站和Java程序需要的數據。 (您創建與服務器端語言的API。)

...

注意:您不直接從JavaScript訪問數據庫的原因是因爲JavaScript客戶端上運行。這意味着,運行javascript的用戶將能夠看到訪問數據庫的代碼(代碼將包含憑據)。

相關問題