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 :

JSP Questions de base


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut JSP Questions de base
    Bonjour,

    Voila un petit temps que je développe une application en JSP (+ AJAX).
    Je n'ai hélas pas d'expérience avec ce langage et je me suis peut être lancé dedant un peu tête baissée.

    Je me pose des questions assez fondamentales sur la façon dont je devrais programmer cette application.

    En gros c'est une appliaction web (fatalement), dont l'acceès n'est donné qu'a certaines personnes (gestion des utilisateurs / login / droits ...), qui est composé d'une série de formulaire dont les informations doivent être sauvées dans une DB. (une application tout ce qu'il y a de plus classique).

    Voici comment j'ai structuré mon appliaction:
    • Un répertoire "views" dans le repertoire WEBCONTENT, qui contient tous mes formulaires
    • Un répertoire "JS" dans WEBCONTENT qui lui contient toutes mes scripts javascripts utilisé pour l'AJAX (envois des info de mon HTML -> JSP)
    • Un repertoire "controllers" qui lui contient des fichiers JSP. Ces fichiers sont accédés depuis mes fichiers javascript, ils vont donc récuperer les infos envoyées par le JS et ensuite les traduire en object et faire des opération coté server (utilisation de mes class)
    • Un repertoire src (qui lui a l'air de ne pas être dans "WebContent") et qui contient mes classes réparties dans differents packages.


    Donc schématiquement:

    JSP (formulaire) -> JS -> JSP (controllers) -> JAVA (classes)
    et le chemin dans l'autre sens.

    La je dois ajouter des fonctionalités permettant l'upload de fichier depuis mes formulaire. J'ai trouvé la jar fileupload (de jakarta je pense), mais pour être honnete je ne vois pas ou je dois la mettre... J'utilise éclipse. Dois je simplement l'ajouter dans le build path? J'ai lu sur pas mal de site qu'il fallait la mettre dans le WEBINF/lib, mais dans ce cas la je pense que mes fichiers JAVA ne peuvent pas y accéder...
    C'est vraiment cette gestion des librairie que je ne saisis pas correctement.

    Est ce que mon raisonnement expliqué ci dessus vous semble correct?

    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    Facile, tu inclus le jar sous eclipse comme d'hab pour avoir droit à la complémentation automatique et pas du rouge partout. Et tu le colle aussi dans WEB-INF/lib pour Tomcat.
    Eclipse et Tomcat ont des classpath différent, il est normal de leur renseigner les librairies externes séparemment.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    okay!
    Merci bcp.
    Sinon pour le reste ça semble correcte? PCq me semble avoir lu que je suis censé avoir mes fichier java dans webcontent/src. La quand je teste mon appliaction ça fonctionne nickel mais je la teste le local par eclipse je n'ai jamais déployé d'application jsp donc je ne sais pas ce que ça donnera.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    Ah et quand j'ajoute une livraire dans eclipse (ds le build path) elle ne se met pas sous Web app librairies, c'est normal? Est ce un probleme? A quoi sert ce "répertoire" ?

    La pour mettre la librairie dans eclipse je le fais depuis le build path (add external jars) et pour le coté tomcat je fais un import(import archive file) dans le repertoire webinf/lib est ce bien correct?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    Alors je pense que je vais te donner les règles de déploiement d'un application J2EE JSP/Servlet.


    Tout d'abord au niveau d'éclipse :
    -tu créé tes fichiers .java et .jsp dans un répertoire quelconque. Lorsque que tu ajoutes une librairies via "add external jar", eclipse reconstruit son classpath affin d'inclure ton .jar dans ton projet. Jusque la rien de compliqué, mais c pour bien te montrer que Tomcat n'intervient encore pas

    Ensuite du coté de Tomcat :
    -tu créé un dossier dans le répertoire webapps dans lequel tu mettra ton projet. Le nom donné à ce projet définira l'url d'acces à ton projet. exemple: Tu nomme ton dossier TataYoyo, tu y accedera par ton navigateur par http://localhost:8080/TataYoyo/

    -Dans ce répertoire tu peut ensuite mettre tes .jsp sous l'architecture que tu désires. Ceux ci influanceront bien sur aussi l'url d'acces, a prendre en compte pour l'acces a tes differents formulaires/pages.

    -Enfin, on arrive au point qui doit le plus te poser problèmes. Crée un dossier "WEB-INF" juste en dessous de ton répertoire de base de ton projet. C'est ici que l'on va mettre toute les infos pour Tomcat ainsi que les librairies externes.

    Dans un répertoire "WEB-INF/lib" tu mettra les .jar des api externes ou les .class en respectant les packages. Dans un autre répertoire "WEB-INF/classes" tu mettra les .jar ou .class de tes servlet en respectant aussi les package.

    Et bien sur on oublie pas le fichier de déclaration des servlet "WEB-INF/web.xml"

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    Merci bcp pour ta réponse!!

    J'ai donc ajouté l'external jar a mon projet, et je l'ai également importé dans webinf/lib.

    Ensuite afin de tester j'ai ecris ceci dans une page jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <%@ page import="web.*" import="java.util.*" import="java.text.*" import="web.*" language="java" contentType="text/html; charset=ISO-8859-1"
        import="org.apache.commons.fileupload.disk.*" pageEncoding="ISO-8859-1"%>
     
    <%
    DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
    %>
    et voici ce qui m'est retourné comme erreur:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    org.apache.jasper.JasperException: Unable to compile class for JSP
     
    An error occurred at line: 3 in the jsp file: /fileUpload/test_u.jsp
     
    Generated servlet error:
        [javac] Compiling 1 source file
     
    D:\Lemaire Laurent\Applications\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\Repair_Application_2\fileUpload\test_u_jsp.java:11: package org.apache.commons.fileupload.disk does not exist
    import org.apache.commons.fileupload.disk.*;
    ^
    D:\Lemaire Laurent\Applications\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\Repair_Application_2\fileUpload\test_u_jsp.java:51: cannot resolve symbol
    symbol  : class DiskFileItemFactory 
    location: class org.apache.jsp.test_u_jsp
    DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
    ^
     
     
     
    An error occurred at line: 3 in the jsp file: /fileUpload/test_u.jsp
     
    Generated servlet error:
    D:\Lemaire Laurent\Applications\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\Repair_Application_2\fileUpload\test_u_jsp.java:51: cannot resolve symbol
    symbol  : class DiskFileItemFactory 
    location: class org.apache.jsp.test_u_jsp
    DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
                                              ^
    3 errors
     
     
    	at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
    	at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:248)
    	at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:343)
    	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:142)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    	at java.lang.Thread.run(Thread.java:534)
    J'ai précédement essayé de le faire depuis un fichier java, mais j'avais également une erreur (noclassfound exception)

Discussions similaires

  1. [JSP][IHM]question de base
    Par Invité dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/02/2006, 16h51
  2. question de base
    Par tuxedo dans le forum Langage SQL
    Réponses: 11
    Dernier message: 05/04/2005, 15h28
  3. [Débutant] Question de base sur le BDE et les SGBD
    Par Invité dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/03/2005, 08h45
  4. Question de base
    Par xinu1.1 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 03/02/2005, 22h14
  5. [JSP] Connexion à une base mysql
    Par Jovial dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 20/04/2004, 14h04

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