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 :

forward servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Par défaut forward servlet
    bonjour,

    j'aimerais que a l'appel de mon servlet que celle donne la main a une page jsp. puis cette derniere retourne la main a la servlet avec un fichier a traiter.le pb c que ,on debogant ,que le compilateur passe les instructions de forward puis m'affiche un message de null pointer exception (et c normal parceque dans le reste du code il suppose qu'il recoit un fichier de la jsp).voila le code de la servlet:
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		if(init==1){
     
    			RequestDispatcher di= getServletContext().getRequestDispatcher("/jsp/adminUpload.jsp");
     
    			di.forward(request, response);
    			init=0;
    		}
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
     
    		out.println("<HTML>");
    		out.println("<HEAD><TITLE> Titre </TITLE></HEAD>");
    		out.println("<BODY>");
     
    		//location=request.gets;
    		Iterator it=items.iterator();
     
    		while(it.hasNext()){
    			FileItem item = (FileItem) it.next();
    			out.println("la taille de items "+items.size());
    			out.println("<br/>");
    			out.println("item is empty? "+items.isEmpty());
     
    			image=new File(item.getName());
    			out.println("<br/>");
    			out.println("le taille est "+item.getSize());
    			out.println("<br/>");
    			out.println("le context de l'application est: ");
    			out.println("<br/>");
    			out.println("le nom du nouveau fichier est"+image.getAbsolutePath());
    			try {
    				item.write(image);
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			out.println("<br/>");
    			out.println("la taille du nouveau fichier est"+image.length());
     
    		}
     
    		//out.println(request.getParameter("image"));
    		out.println("</BODY>");
    		out.println("</HTML>");
    		out.close();
     
    	}  	
     
    	/* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		boolean isMultipart;
    		if (isMultipart = ServletFileUpload.isMultipartContent(request)) {
     
    			// Create a factory for disk-based file items
    			FileItemFactory factory = new DiskFileItemFactory();
     
    			// Create a new file upload handler
    			ServletFileUpload upload = new ServletFileUpload(factory);
     
    			// Parse the request
    			try {
    				items = upload.parseRequest(request);
    			} catch (FileUploadException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
     
    		doGet(request, response);
     
    	}   	  	  
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.GenericServlet#init()
    	 */
    	public void init() throws ServletException {
    		init=1;
     
     
    	}

    du nouveau je sollicite votre aide
    merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Il faudrait peut etre nous donner le stacktrace de l'exception, le code de la jsp et le code de la premier servlet.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Par défaut
    merci pour la reponse.
    c la meme servlet qui a appele la jsp.
    le code de la jsp est le suivant.mais la page n'aille pas du tout a la jsp
    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
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/JavaScript">
    function verifier(objet){
    if(objet.image.value==""){
    alert("vous devez selectionnez une image");
    return false;
    }
    else{
    objet.submit();
    }
     
    }
     
     
     
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>hello</title>
    </head>
    <body>
    <center>
    <FORM ENCTYPE="multipart/form-data" 
    method="post"  action="/aymenproject2/uploadVideo">
    <INPUT TYPE="File" NAME="image" value="">
    <INPUT TYPE='button' name='bouton' VALUE='upload' onclick="verifier(this.form)">
    </FORM>
     
     
    </center>
    </body>
    </html>
    et voila l'exception
    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
     
    java.lang.NullPointerException
    	at aymen.uploadVideo.doGet(uploadVideo.java:61)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il viens d'ou ton "items" dans la servlet? Et quelle ligne de code correspond à l'erreur (on a pas les numéros de ligne ici)

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Par défaut
    l'erreur vient de cette instruction: Iterator it=items.iterator(); ceux ci est normal car si la servlet ne donne pas la main a la jsp elle n'aura pas un fichier dans la request est donc c normal qu'elle aura un null pointer exception.mon pb c que je comprend pas pourqoui la servlet ne donne pas la main a la jsp dans ce block:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(init==1){
     
    			RequestDispatcher di= getServletContext().getRequestDispatcher("/jsp/adminUpload.jsp");
     
    			di.forward(request, response);
    			init=0;
    		}
    meme que la condition est vrai et que le compilateur entre dans le bloc (j'ai verifier en debogant)

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    items est un champ de la servlet? Si oui, il n'y a aucun moyen pour la jsp de modifier ce champ. Je crois que tu confond le request scope, accessible depuis la servlet via request.getAttribute("item") et les variables de ta méthode / champs de ta servlet. Vu que tu ne récupère pas item après l'appel à la jsp, je vois pas comment tu pourrais espérer qu'il est initialisé. Bref le transfert de donnée entre deux servlet ou serlvet/jsp quand tu utilise le forward, se fait surtout via request.[get/set]Attribute()

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/07/2009, 18h22
  2. [Servlet] Question Forward d'une requête
    Par matthew016 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 11/08/2006, 14h46
  3. [Servlets]Include/Forward
    Par Quartus dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/05/2006, 13h02
  4. [ servlet ] forward
    Par Pi2 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/02/2006, 14h09
  5. [servlet][JSP]forwarder dans une frame
    Par deldin dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/06/2004, 18h03

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