IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Relation entre Servlet et Javascript


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut Relation entre Servlet et Javascript
    Bonjour,

    je suis entrain d'assimiler le JEE pour un stage, c'est pourquoi j'aimerais qu'on m'aide à comprendre.

    L'application sur laquelle je bosse possède essentiellement ces interactions :
    -Servlet/EJB pour les traitement de "fond" si j'ai bien compris. Les 2 sont "reliés" entre eux par des interfaces que j'ai bien identifiés. Il y a aussi des bases de données qui rentrent en compte. L'application recueille des données (via requêtes SQL) qui proviennent d'autres serveurs pour alimenter sa propre BDD. Donc si j'ai bien compris encore une fois, toutes ces requêtes sont effectuées par les EJB ?

    -Servlet/Framework(Client). Le framework est Ext JS que j'ai bien identifié dans le code. Cependant, c'est à ce niveau que j'ai du mal à comprendre. Il n'y a pas de fichiers HTML, ni de JSP. Tout est construit par les Servlet qui donnent le code Html ; et encore, je vois que seul le servlet "d’accueil" en donne, pas les autres fichiers. Donc tout est construit par les fichiers JS qui sont associés à des CSS. Le problème, c'est que je ne vois nulle part où les Servlets sont associés. Je pensais que les Servlets envoyaient ces .js au client, mais dans les servlets il n'y a pas d'imports ni même d'utilisation de ces JS.. Ce sont dans les .js où je vois quelques référence aux Servlets, mais du coup ça ne me semble plus logique. Ces lignes des JS ressemblent à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Ext.Ajax.request({
            url: 'XXXServlet',
            method: 'POST',
            callback: function(options, success, response) {
                var err = false;
                var msg = "Rechargement de la page.";
    ...
    Bref, je ne vois pas comment le rapport peut se faire entre les Servlets (qui traitent les requêtes), et les fichiers JS qui doivent logiquement être interprétés sur le navigateur du client.
    Concrètement où se fait le lien entre les deux ? fichiers web.xml ? Comment et où est envoyé le code JS au client ?


    Dites-moi où je déraille SVP

    Merci d'avance de votre aide !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    35 vues et toujours personne ?

  3. #3
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    Ici c'est de l'ajax qui peremet de faire un traitement sans avoir télécharger la page.rapel toi du fameux exemple liste département ,région et ville.

    Comment ça marche ta ton servlet déclarer dans le fichier web.xml et c'est tout

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    Je ne vois pas très bien où tu veux en venir


    Alors j'ai :

    -Dans mon web.xml, déclaration des servlets, mapping de ces servlets, pages d'erreur

    -Un paquet contenant tous les servlets représentant chacun un module (fonctionnalité) de l'appli. Chacun de ces servlets renvoie donc un code html avec les imports des js. Dans tous ces codes le body de l'html est vide car ce sont les js qui vont faire le boulot.

    -Un paquet contenant les js des modules. Chaque module est donc constitué un ou plusieurs js/css (par ex un module pour la page d’accueil, un autre pour la construction d'un emploi du temps etc.)

    -Un programme contenant les interfaces reliant les servlets avec les EJB

    -et enfin un autre programme contenant les EJB



    Question : concrètement, à quel moment est utilisé le web.xml quand un client se connecte à l'appli ?

  5. #5
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    web.xml est un descripteur de déploiement il est chargé au démarrage de l'application

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    Donc si je comprends bien, dès que le client accède à l'appli, le web.xml est lu, et après ça les servlets sont chargés en conséquence ?

    => Client arrive à la racine de l'appli
    => web.xml regarde à quel servlet correspond la racine
    => servlet correspondant chargé
    => traitement du servlet
    => donc js renvoyé au client
    => affichage sur le navigateur du client

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Le descripteur de déploiement sert au démarrage de l'application.

    Pour ton cas, tu as certainement une page index.html ou index.jsp à la racine de ton application (/WebContent)

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    Non, c'est bien là le problème car l'appli ne contient aucune page.html et aucun .jsp à part 3 pages d'erreur.
    Je n'ai même pas de dossier /WebContent , seulement un dossier /Web Pages (=WebContent je suppose) qui contient :

    -/WEB-INF : fichier web.xml et sun-web.xml qui permet de définir le nom de l'application (la racine de l'application)
    -/ext : dossier du framework
    -/images
    -/modules : là il y a plein de dossier correspondant à chaque fonctionnalités de l'appli. Ces dossiers contiennent eux mêmes des js et des css
    -à la racine de Web Pages : les 3 jsp des pages d'erreur, ainsi que le login.js et son css qui correspondent à la page "d'index" de l'appli (page où on arrive quand on accède à l'appli)

    Donc c'est vrai que j'ai du mal à m'y retrouver dans tous ça x)


    Donc en fait le descripteur de déploiement est lu une seule fois au déploiement de l'appli, ainsi après les relations entres servlets et ejb sont faites une bonne fois pour toute ? J'ai beau me renseigner sur le net j'ai du mal avec cette notion de descripteur

    Le plus dur pour moi en fait c'est de m'imprégner du code. Moi qui n'ai jamais fait de JEE, j'avoue que je me prends pas mal la tête dessus mais je vais y arriver

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    Je précise que l'appli date de 2008 et je suis chargé de la remettre "à jour".

    Personne pour m'éclaircir les idées ?

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le web.xml ?

  11. #11
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    dans ce cas toute la partie présentation est fait en servlet et forcement dans ton web.xml ta un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <welcome-file-list>  
            <welcome-file>LoadIndex</welcome-file>  
        </welcome-file-list>

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    Je ne vais pas tout mettre car il est long, mais voici le début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <description>Application pour la gdp</description>
        <display-name>AppGdP</display-name>
        <filter>
            <filter-name>LoginFilter</filter-name>
            <filter-class>webGdP.servlet.filtre.LoginFilter</filter-class>
        </filter>
        <filter>
            <filter-name>AccessFilter (Absences)</filter-name>
            <filter-class>webGdP.servlet.filtre.AccessFilter</filter-class>
            <init-param>
                <param-name>module</param-name>
                <param-value>Absences</param-value>
            </init-param>
        </filter>
    ...
    et voici la fin :

    en effet on voit la welcome list

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <session-config>
            <session-timeout>120</session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>login</welcome-file>
            <welcome-file>accueil</welcome-file>
            <welcome-file>edt</welcome-file>
            <welcome-file>tache</welcome-file>
            <welcome-file>absence</welcome-file>
            <welcome-file>admin</welcome-file>
            <welcome-file>charge</welcome-file>
            <welcome-file>consult</welcome-file>
            <welcome-file>dispo</welcome-file>
            </welcome-file-list>
        <error-page>
            <error-code>404</error-code>
            <location>/ErreurPage.jsp</location>
        </error-page>
        <error-page>
            <error-code>500</error-code>
            <location>/ErreurServeur.jsp</location>
        </error-page>
        <error-page>
            <error-code>403</error-code>
            <location>/ErreurAccess.jsp</location>
        </error-page>
        </web-app>
    J'ai pourtant compris le fonctionnement général de l'appli mais j'ai encore du mal avec les relations InterfaceGraphique/Servlets/EJB, surout qu'apparemment les EJB communiquent entre eux et entre les servlets ce qui ne facilite pas la tâche

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Quelle url utilises-tu pour lancer l'application ?

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    l'adresse de l'appli est :
    http:// serveur8:8080/Projet-war/

    ce qui correspond dans le web.xml à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/login</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>AccueilServlet</servlet-name>
            <url-pattern>/modules/accueil</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>EDTServlet</servlet-name>
            <url-pattern>/modules/edt/edt</url-pattern>
        </servlet-mapping>
    Pourtant quand on arrive sur l'application pour se connecter on arrive bien à la racine : / et non pas au /login comme c'est indiqué..

    Je comprends plus..

  15. #15
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    parce que "/login" est dans tes "welcome-file" en premier.
    Tu ne le verras pas dans ton URL de navigateur, mais c'est bien ce qui sera invoqué et qui déclenchera donc ta Servlet associée.

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    D'accord, merci pour ces indications !

    Dons, si ce n'est pas trop demandé, à quoi servent ces welcome-list ? Elles redirigent vers la racine (/) ?

  17. #17
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    quand une URL arrive sans rien derrière le "/" (un répertoire par exemple), le serveur va chercher à déclencher en concaténant l'URL du navigateur avec ces URL.

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    L'ordre dans lesquelles les welcome list sont rangées a une importance je suppose non ?

  19. #19
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    oui !

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    Ok Merci !


    J'en profite pour poser une autre question.

    Maintenant que j'ai vu la parti interface, je m'intéresse à la partie EJB.

    Les EJB utilisés sont des EJB 3. Je rappelle l'architecture du Projet

    Le projet principal comprend :
    -un projet contenant les EJB
    -un projet contenant les interfaces reliant servlets/ejb
    -un projet contenant interface graphique (js, html) et servlets)

    Les EJB sont invoqués à distance (@Remote) et passe donc par les interfaces définis dans le projet correspondant.
    Mais je viens de voir que le fait de faire des interfaces à distance prend pas mal de temps comparé à un accès en local (@Local).

    Alors pourquoi la personne qui a fait ce code a choisi un accès à distance plutôt qu'un accès local ? C'est une question de JVM ? mais alors une JVM correspond à quoi concrètement ?

    Merci d'avance !

Discussions similaires

  1. [MySQL] relation entre javascript et php
    Par narama87 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2009, 02h12
  2. Relation entre EJB, couche métiers, JSP et servlet
    Par infinity21 dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 05/03/2007, 23h50
  3. [jsp]controles des formulaires servlet ou javascript ?
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 05/07/2004, 14h46
  4. Relations entre les Paquetages
    Par bran_noz dans le forum UML
    Réponses: 4
    Dernier message: 25/06/2004, 14h05
  5. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo