2010-06-05 105 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