2010-06-05 6 views
0

OK donc voici le code:java - 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(); 
     } 
    } 
} 

utilisant cette méthode que je peux utiliser POST et GET méthodes utilisant des scripts PHP. Je peux ensuite utiliser les scripts PHP dans la base de données MySQL qui à son tour renvoie à l'applet java. Est-ce possible? (et plus sûr?)

Merci.

Répondre

1

Vous devez avoir un intermédiaire entre l'applet et la base de données. Si vous écrivez déjà Java, je mettrais une servlet entre les deux. Il peut gérer GET et les requêtes POST, mais il y a aussi d'autres avantages:

  1. Vous pouvez avoir une certaine mesure de sécurité, parce que le servlet peut demander des informations d'identification et seulement permettre aux utilisateurs authentifiés d'accéder à la base de données. Vous pouvez même ajouter une sécurité basée sur les rôles pour permettre aux utilisateurs autorisés de faire certaines choses (par exemple, seuls les administrateurs écrivent dans la base de données).
  2. Vous pouvez lier et valider les paramètres de requête avant de les renvoyer à la base de données. Combinez cela avec des instructions préparées et votre base de données sera plus sûre des attaques par injection SQL.
  3. Le conteneur de servlet gère un pool de threads et affecte un thread par requête entrante. Votre application sera en mesure d'accueillir plus d'utilisateurs qu'une simple application client/serveur, qui est liée par # de connexions.
  4. Le conteneur de servlet peut gérer un pool de connexions de base de données. Cela contribuera à rendre votre application plus réactive, car elle répartit le coût de la création de connexion entre toutes les demandes.
+0

Pourquoi est-ce que je ne peux pas avoir la page PHP faire le travail mysql et l'applet java l'affichage? – nn2

2

Il est certainement possible de se connecter à un script intermédiaire. Vous pouvez utiliser apache http components à cette fin.

Vous ne devriez pas utiliser JDBC à partir d'une applet pour vous connecter à une base de données distante, car quelqu'un lira les informations d'identification et "pirater" votre base de données.

Si vous souhaitez une meilleure approche avec une idée similaire, créez une API REST.

+0

Je préfère utiliser les requêtes POST et GET pour me connecter à ma base de données MYSQL ... c'est bien non? – nn2

+2

Vous ne pouvez pas vous connecter à MySQL via HTTP. – Bozho