Accessibilité
Ressources pour les développeurs

Table des matières

Développement de votre première application avec Macromedia Breeze

Création de méthodes utilitaires

Commençons par la classe XMLApiBean, qui est à la base de votre application. Vos premières méthodes sont les méthodes utilitaires destinées à la construction de l’URL de requête et à l’envoi de la requête d’action. L’URL est créée à partir de l’URL du serveur, qui est enregistrée à l’instanciation de la classe, et en ajoutant le code d’accès, le nom de l’action et les paramètres de l’action. Votre code devrait avoir l’aspect suivant :

protected URL breezeUrl(String action, String queryString
                        throws Exception {
  return new URL(baseUrl + "api/xml?accesskey=" + accessKey + 
                 "&action=" + action + 
                 (queryString != null ? ('&' + queryString) : ""));
}

Cette méthode sera utilisée pour l’ouverture de session et pour toutes les requêtes d’action. La méthode d’envoi d’une requête d’action est très simple :

protected Element request(String action, String queryString)
                          throws Exception {
  if (jsession == null)
    login();

  URL url= breezeUrl(action, queryString);
  URLConnection conn= url.openConnection();
  conn.setRequestProperty("Cookie", "BREEZESESSION=" + jsession);
  conn.connect();

  InputStream resultStream= conn.getInputStream();
  Document doc= new SAXBuilder(false).build(resultStream);
  return doc.getRootElement();
}

Une fois l’utilisateur connecté au serveur, il vous suffit d’utiliser la méthode breezeUrl pour créer une URL de requête. Vous envoyez la requête au serveur et placez la réponse dans un document XML renvoyé par la méthode.

La méthode suivante est une variante de la méthode de requête. Avant la réussite de toute ouverture de session, vous ne disposez pas d’une BREEZESESSION, qui est requise pour tous les appels (à l’exception de l’ouverture de session) à des fins d’authentification. Votre code d’ouverture de session obtient la BREEZESESSION et l’enregistre dans la propriété correspondante de façon à en permettre l’utilisation par la méthode de requête mentionnée précédemment. Votre code devrait avoir l’aspect suivant :

protected void login() throws Exception {
  if (jsession != null)
    logout();

  URL loginUrl= breezeUrl("login","login=" + login + 
                          "&password=" + password);

  URLConnection conn= loginUrl.openConnection();
  conn.connect();

  InputStream resultStream= conn.getInputStream();
  Document doc= new SAXBuilder(false).build(resultStream);

  String jsessionString= (String) (conn.getHeaderField("Set-Cookie"));

  StringTokenizer st= new StringTokenizer(jsessionString, "=");
    if (st.countTokens() > 1 && st.nextToken().equals("BREEZESESSION")) {
      String jsessionNext= st.nextToken();
      int semiIndex= jsessionNext.indexOf(';');
      jsession= jsessionNext.substring(0, semiIndex);
    

    if (jsession == null)
      throw new RuntimeException("Echec de connexion à Breeze.");
}

Vous remarquerez que la méthode d’ouverture de session est protégée. C’est votre méthode de requête qui traite l’ouverture de session, qui est un des derniers points à prendre en compte lors de l’envoi d’une requête. Un de nos principes de conception est de simplifier le développement JSP et le fait de masquer le traitement de l’ouverture de session en est un exemple.