Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Introduction aux concepts de base d’Apache Sling [Eng]

Introduction aux concepts de base d’Apache Sling [Eng]
Participez au vote ☆☆☆☆☆★★★★★

Introduction aux concepts de base d’Apache Sling

....

Architecture générale

Demande de traitement

  Décomposition d'URL

  Envoi de demandes

  Servlets et scripts

  Les filtres

Ressources

  Ressources

  Fournisseur de ressources et résolveur de ressources

  Cartographie de résolution de ressources

API Sling

  Adaptateurs

  API Sling

 REST est synonyme de «transfert d'état représentatif»

  “Style architectural pour la conception de systèmes distribués“

  „Le Web tel qu'il était censé être“

  C’est centré sur le transfert de

Représentations de Ressources Roy Fielding

  Une ressource peut essentiellement être n'importe quoi!

  Les ressources sont indépendantes de leur représentation

  Une URL identifie une ressource

  Les URL ont une hiérarchie implicite

Les méthodes effectuent des opérations sur les ressources

  Les codes de statut HTTP sont utilisés pour indiquer le succès des résultats.

  Les méthodes les plus courantes sont:

  GET - Récupérer un élément ou une liste d'éléments

  POST - Créer un article

  PUT - Mettre à jour un élément

  DELETE - Supprimer un élément

  Des méthodes sûres ne doivent rien changer

  Les méthodes idempotentes ne doivent rien changer au-delà de leur première exécution

Demande de traitement

   Décomposition d'URL

   Envoi de demandes

   Servlets et scripts

   Les filtres

Ressources

   Ressources

   Fournisseur de ressources et résolveur de ressources

   Cartographie de résolution de ressources

API Sling

   Adaptateurs

   API Sling

   Décomposer l'URL

   Rechercher un fichier indiqué par l'URL

   Résoudre la ressource (en utilisant le chemin de l'URL)

   Résoudre le script de rendu / servlet Ne pas appeler les scripts directement dans Sling!

   Source primaire: Type de ressource

   Créer une chaîne de rendu

   Filtres configurables (Servlet)

   Servlet de rendu

   Invoquer la chaîne de rendu

   Chemin de ressources

   La sous-chaîne de l'URL de la demande avant le premier point (.)

   Peut-être l'URL complète s'il n'y a pas de point

Exemple: / un / chemin

   Sélecteurs

   Substring entre le premier point et le point en tête de l'extension

   Utilisé pour d'autres méthodes de rendu du contenu

   Plusieurs sélecteurs possibles

   Optionnel

Exemple: /some/path.s1.s2.html

Extension

   La chaîne entre le dernier point après le chemin de la ressource et la prochaine barre oblique

   Spécifie le format du contenu

   Optionnel

Exemple: /some/path.s1.s2.html

   Chemin de suffixe

   Chemin commençant par la barre oblique jusqu'à la fin de l'URL de la demande

   Au moins un point doit être dans l'URL pour permettre à Sling de détecter le chemin du suffixe

   Peut être utilisé pour fournir des informations supplémentaires pour le script de traitement

Exemple:

Chemin des suffixes d'extension

/ a / b / a / b null null null

 / a / b null html null

 / a / b s1 html null

 / a / b null html / c / d

   Maintenant, Slings essaie de trouver la ressource adressée

   Les mappages sont appliqués

   Il est demandé aux fournisseurs de ressources inscrits de fournir une ressource avec le chemin résultant.

   La plupart du temps, JcrResourceProvider par défaut finit par fournir la ressource en la recherchant dans le référentiel de sauvegarde.

   Mais la ressource peut également être fournie par tout élément mappé dans l’arborescence par un

Fournisseur de ressources

  Pour permettre différents traitements pour différents types de ressources, Sling a la notion de type de ressource.

  Le type de ressource détermine le script utilisé pour traiter la ressource.

  Déclaration du type de ressource avec sling: resourceType

  Étant donné que les types de ressources sont traités comme un chemin dans le processus de sélection du script, vous devez utiliser des types de ressources délimitées par des barres obliques, telles que:

                entreprise / page d'accueil

  Fallback: conversion du type de noeud principal de la ressource en chemin (en remplaçant les deux points par des barres obliques) et en essayant celui-ci (par exemple, nt: fichier devient nt / fichier)

  Une ressource peut non seulement définir son type de ressource, mais également un super type de ressource via le

sling: propriété resourceSuperType

  Si un super-type de ressource est défini pour une ressource, la résolution de script se repliera sur ce super-type avant de revenir aux scripts par défaut.

  Si un type de ressource n'a pas de super type de ressource explicite, le super type de ressource par défaut est supposé être

sling / servlet / default

  Le super-type de ressource peut être déclaré sur le noeud de ressource lui-même ou pour son type de ressource.

  Pour déterminer l'emplacement du script dans lequel traiter la ressource, Sling convertit le type de ressource en chemin.

  Si ce chemin est absolu (c’est-à-dire qu’il commence par une barre oblique), il est utilisé tel quel.

Type de ressource: / apps / company / homepage Sites de recherche: / apps / company / homepage

 Si le chemin est relatif, le ResourceResolver ajoute automatiquement chacun des chemins de recherche configurés et recherche les chemins résultants (dans leur ordre de configuration).

Chemin ["/ apps", "/ libs"]

Type de ressource: société / page d'accueil Lieux de recherche:

 / apps / company / homepage / libs / company / homepage

  Selon que les sélecteurs de demandes sont pris en compte ou non, un nom de script peut prendre deux formes:

  Sans sélecteurs:

{resourceTypeLabel}. {requestExtension}. {requestMethod}. {scriptExtension} Avec sélecteurs:

{selectorStringPath}. {requestExtension}. {{requestMethod}. {scriptExtension}

  {resourceTypeLabel} - Dernier segment du chemin créé à partir du type de ressource. (optionnel).

{selectorStringPath} - La chaîne de sélecteur. (optionnel)

  {requestExtension} - L'extension de la demande (HTML par défaut)

  {requestMethod} - La méthode de la requête (par exemple, "GET" ou "POST")

  {scriptExtension} - L'extension, par exemple “Esp” ou “jsp”, identifiant le langage de script.

  Si plusieurs scripts s'appliquent à une demande donnée, le script avec la meilleure correspondance est sélectionné. Plus une correspondance est précise, mieux c'est.

  La priorité des composants du nom de script est (du plus élevé au plus bas):

  1. Sélecteurs (plus le sélecteur correspond au meilleur)
  2. extension
  3. Etiquette de type de ressource

  Considérons une demande d'accès à la ressource

avec le type de ressource

adaptto / sling / basics / stock

En supposant que nous ayons la liste de scripts suivante au bon endroit, l'ordre de préférence serait (7) - (6) - (4) - (4) - (3) - (2) - (1)

adaptTo () 2012

  Inclure ou transférer une demande à une autre ressource:

  forward () est comme une redirection côté serveur où le contrôle est complètement transféré à une autre ressource

  include () est comme une inclusion côté serveur où la sortie de la ressource ciblée est incluse dans la réponse

  SlingRequestDispatcher est l'implémentation spécifique à Sling de l'interface Servlet RequestDispatcher qui accepte un paramètre RequestDispatcherOptions supplémentaire. Ces options permettent de:

  Forcer le traitement de la ressource ciblée avec un autre type de ressource

  Ajouter des sélecteurs à la demande ou les remplacer complètement

  Remplacer le chemin du suffixe

  Sling prend en charge les scripts via JSR 223

  Sling fournit les langages de script suivants:

  JSP

  Sensationnel

  JavaScript

  DefaultSlingScript agit comme une façade pour les servlets et les scripts

 La classe DefaultSlingScript implémente SlingScript, Servlet, ServletConfig {

…

}

  Certaines options disponibles en tant que contributions incluent:

  Python

  Rubis

  Scala

  Freemarker

  Rapidité

  Java (en tant que fichiers source .java)

  Voir http: // localhost: 8080 / system / console / config dans l'onglet "Moteurs de script" pour connaître les moteurs de script disponibles.

  Sling inclut une bibliothèque de balises pour simplifier le développement de JSP. Incluez-la dans votre JSP avec:

  @taglib prefix = "sling"

  Expose les objets de script régulièrement utilisés tels que:

  demande

  réponse

  Ressource

  en dehors

  Inclut un rendu de ressource dans la page en cours

  Enregistrement via le service HTTP OSGi

  Méthode OSGi de base pour enregistrer les servlets, utilisée par le SlingMainServlet

  Les servlets enregistrés via le service HTTP contournent le traitement de Sling

  Inscription via le tableau blanc

SlingServletResolver écoute les services Servlet

  Les services de servlet doivent au moins déclarer la propriété Sling.servlet.resourceType pour qu'elle soit prise en compte par Sling.

  Sling enregistre les servlets en tant que ressources dans l'arborescence de ressources (virtuelle)

  Les ressources de servlet sont adaptables à javax.servlet.Servlet

 SlingMainServlet

 Point d'entrée dans la gestion de la demande Sling après authentification

 DefaultGetServlet

 Fournit des moteurs de rendu par défaut pour les ressources (HTML, TXT, JSON, XML)

 SlingPostServlet

Permet une manipulation étendue du contenu (création, suppression, mise à jour) via son API REST

 DefaultErrorHandlerServlet

  Servlet de gestionnaire d'erreurs par défaut enregistré à la fin du chemin de recherche global

  Sling contient la classe de base SlingSafeMethodsServlet en tant qu'aide pour la mise en oeuvre de servlets en lecture seule.

  Lors du remplacement de ses méthodes doXXX, il n’est pas nécessaire de transtyper les objets requête et réponse pour accéder aux méthodes spécifiques à Sling.

  Type de ressource

  Moyen principal et préféré de lier un script à une ressource.

  Fournit une séparation entre une ressource et sa représentation.

  Chemin

  Découragé en écharpe!

  Contourne le contrôle d'accès

  Utilisez uniquement pour les servlets qui sont indépendamment de l'existence d'une ressource spécifique

  Sélecteurs

  Souvent utilisé pour une représentation différente d'une ressource (par exemple, une vue détaillée)

  Extension

  Utilisez cette option pour les représentations alternatives d'une ressource sous un autre type de fichier (PDF, PNG, JSON, etc.).

  Méthode

  Vous allez principalement l’utiliser pour implémenter un stockage de données spécifique en liant également une servlet à la méthode POST.

  Utilisé pour l'authentification, le post-traitement du balisage, etc.

  Les filtres dans Sling sont des services implémentant l'interface javax.servlet.Filter.

  Deux propriétés de service sont pertinentes:

  sling.filter.scope - Indique la chaîne de filtrage à laquelle le filtre doit appartenir. Champs obligatoires! Sling ne captera pas votre filtre s’il n’est pas réglé.

  service.ranking - Indique la priorité du filtre dans la chaîne. Plus le nombre est élevé, plus le filtre sera appelé tôt.

  La configuration actuelle du filtre peut être vérifiée dans l'onglet "Filtre de servlet Sling" à

  Gère toutes les opérations POST sur une instance Sling par défaut

  Créer, modifier, copier, déplacer, supprimer et importer des ressources

  Peut être étendu avec des opérations POST supplémentaires / PostProcessor

  SlingPostServlet est un bundle OSGi

………

Indique que la propriété "title" doit être définie sur "Some Value", à moins que la valeur du paramètre "title" ne soit pas vide.

Indique que la valeur de la propriété "vérifiée" doit être définie sur le nœud cible en tant que "Boolean".

Architecture générale

Demande de traitement

   Décomposition d'URL

   Envoi de demandes

   Servlets et scripts

   Les filtres

Ressources

   Ressources

   Fournisseur de ressources et résolveur de ressources

   Cartographie de résolution de ressources

API Sling

   Adaptateurs

   API Sling

 Qu'est-ce qu'une ressource?

  • S'appuyant sur JCR's Everything is Content, Sling suppose que tout (ou presque) est une ressource. Ainsi, Sling gère un arbre virtuel de ressources, qui est une fusion du contenu réel du référentiel JCR et des ressources fournies par les fournisseurs de ressources.

  Puisque Sling est construit sur JCR, ces ressources (basées sur JCR) sont les ressources par défaut et vous les rencontrerez le plus souvent.

  Les ressources JCR sont fournies avec le fournisseur JcrResourceProvider par défaut.

  JcrResourceProvider est toujours disponible et est toujours demandé en dernier.

  Les ressources fournies par d'autres fournisseurs de ressources ne peuvent jamais être annulées par des ressources basées sur un référentiel.

  Les ressources peuvent être fournies par des fichiers (resourceType = nt: fichier) et des répertoires (resourceType = nt: dossier) contenus dans un bundle OSGi.

  BundleResourceProvider est chargé de mapper l’arborescence de répertoires dans l’arborescence de ressources.

  Votre paquet doit déclarer les ressources qu'il fournit avec l'en-tête Sling-Bundle-Resources

  C’est très pratique de l’ajouter en tant qu’instruction dans la configuration de maven-bundleplugin:

                                     <Sling-Bundle-

Ressources> / ressource / arbre; chemin: = / bundle / arbre

FilesystemResourceProvider peut monter un répertoire du système de fichiers local dans l'arborescence des ressources.

  Comme avec d’autres fournisseurs similaires, les fichiers utilisent le type de ressource nt: file et les répertoires le type de ressource nt: folder.

FilesystemResourceProvider peut être configuré via la console de configuration OSGi

  Fournit un accès aux ressources de différents emplacements via un seul ResourceResolver

  Inscrit dans un chemin de l’arborescence de ressources virtuelle, il est capable de fournir des ressources en dessous de cet emplacement.

  ResourceResolver demande à ResourceProviders dans l'ordre de correspondance la plus longue du chemin racine (par exemple, R1 enregistré ci-dessous / content / a aura une priorité plus élevée que R2 inscrit ci-dessous / contenu).

  JCR ResourceProvider est enregistré à la racine (/) de l'arborescence de ressources virtuelle

Envoyer des commentaires

Historique

Enregistré

Communauté

Decouvrir ces documents

  • Démarrer avec Apache luence support de formation avancé

    Démarrer avec Apache luence support de formation avancé

  • Guide d’utilisation d’Apache Wink étape par étape [Eng]

    Guide d’utilisation d’Apache Wink étape par étape [Eng]

  • Cours pour démarrer avec le Framework Apache Jena

    Cours pour démarrer avec le Framework Apache Jena

  • Initiation superieure a l’economie politique : les concepts de base, les theories et lois

    Initiation superieure a l’economie politique : les concepts de base, les theories et lois

  • Introduction aux principales fonctionnalités du Framework Apache Solr

    Introduction aux principales fonctionnalités du Framework Apache Solr

  • Manuel d’utilisation d’Apache Mesos Framework [Eng]

    Manuel d’utilisation d’Apache Mesos Framework [Eng]

  • Apprendre à installer Apache STORM cours

    Apprendre à installer Apache STORM cours

  • Support de formation sur Apache Spark et Map Reduce méhtodes et pratique

    Support de formation sur Apache Spark et Map Reduce méhtodes et pratique

Articles connexes

  • Exercice introduction aux systèmes de gestion de base de données
  • Questionnaire MS Access -introduction
  • TD 8 : Introduction aux bases de données Le langage SQL
  • Exercices et Examens Merise : introduction aux systèmes de gestion de base de données relationnelle
  • Comment faire une introduction pour une analyse de texte philosophique ?
  • TD ASRA: introduction à l'utilisation de pf avec correction
  • Tutoriel Excel : créer une base de données
  • Comment rédiger un rapport de stage ?
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02