java程序可以作为网页javascript和数据库之间的中介吗



对于以下项目,我需要研究、了解和使用什么:

我想使用javascript在网页上显示地图,使用谷歌地图api。上面会有标记。标记将使用纬度和经度进行地理定位。lat和lon坐标将通过在ip-api.com中输入ip来找到,这将给我lat和lon。IP取自数据库。这个地图也将显示在Java程序的jpanel中。

我最担心和困惑的是如何连接到数据库并获取数据。我没有javascript的经验,但我听说在网页上用javascript连接数据库是一种糟糕的做法。是否可以使用我的java程序作为数据库和网页之间的中介来连接、检索和推送数据?这似乎可以保证数据的安全,但我不知道如何将数据从java发送到脚本,或者是否可能。

也许有人还有其他建议?

更新我最初问这个问题时只有一个大致的方向感,理解混乱,只是在寻找正确的方向。下面的答案并没有认为我的问题很愚蠢或我一开始就没有尝试找到答案,而是花了一些时间来帮助我,并能够引导我去我需要去的地方。下次不要这么快就把这样一个明显缺乏经验的程序员降级,并试图伸出援手。这就是这个社区的用途,也是我喜欢使用它的原因。

JavaScript无法直接连接到另一台服务器上的数据库;没有API可以做到这一点(除了WebSockets)。您可能想要做的是在JavaScript中使用AJAX,并为Web服务器编写一个应用程序,用数据库中的答案来回答AJAX请求。

这是一项复杂的任务,需要大量的学习;根据您的情况,让其他人在您编写HTML/JavaScript部分的同时编写服务器部分可能更实际。如果你真的想花时间自己学习,我建议你从SpringMVC开始,因为它可以很容易地编写基于JSON的Web服务。

是的,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

是的,您可以使用服务器端Java代码作为中介。使用JavaScript通过JavaScript的XMLHttpRequest对象将数据POST到HttpServlet。然后处理servlet中的数据。

一旦您完成了DB业务,您就可以发送一个"All done!"响应,由JS处理。

我建议阅读XMLHttpRequest对象。此外,还可以查看涉及POSTed数据的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!");
  }
}

以下是我的想法:

  1. 出于某种原因,您想要存储IP。您使用数据库。(你得到了那个部分。)

  2. 您想从该数据库中读取。您可以使用"服务器端"代码来完成此操作。例如PHP、ASP或JSP(以及其他)。

  3. 您希望在网页和Java桌面程序中显示信息。您可以使用Javascript和Java来实现这一点。(你也得到了那个部分)

现在从1到2(从数据库读取数据),数据库提供了一种语言(sql),您可以使用该语言来检索数据。(当然,数据库也有用户名/密码。)

从2到3,您可以创建某种类型的API,返回您的网站和Java程序所需的数据。(您使用服务器端语言创建API。)

注意:您不直接从javascript访问数据库的原因是javascript在客户端上运行。也就是说,运行javascript的用户将能够看到访问数据库的代码(并且代码将包括凭据)。

最新更新