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 :

Filtre de servlet


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Par défaut Filtre de servlet
    Je travaille au sein d’un projet JAVA J2EE Struts et j’ai quelques problèmes pour la mise en place d’un filtre de servlet.

    Mon problème est le suivant :

    Je désire faire appel à un filtre qui permettrait d’appeler deux pages jsp différentes.

    A la fin du filtre je dois rediriger l’application vers la premiere jsp. Le contenu de la seconde doit être stocké en base.

    Pour cela je déclare deux objets ReponseWrapper (étendent HttpServletResponseWrapper).

    Malheureusement le deuxième objet ReponseWrapper (vResponseWrapper) sensé contenir le code html de la deuxième jsp contient le code de la première (vResponseWrapperInit).

    La redirection finale se passe bien.

    Voyez-vous une explication à ce problème?

    Merci d’avance pour vos réponses.

    Voici mon code :
    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
     
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException
     {
                HttpServletRequest request = (HttpServletRequest) req;
                HttpServletResponse response = (HttpServletResponse) resp;
     
                ResponseWrapper vResponseWrapperInit = new ResponseWrapper(response);
                ResponseWrapper vResponseWrapper = new ResponseWrapper(response);
     
                String generationDoc = request.getParameter(K_GENERATION_DOC);
                String processusGenerationDoc = (String) request.getSession().getAttribute("ProcessusGenerationInit");
     
                // Cas ou l'on ne genere pas de document.
                if ((null == generationDoc || "".equals(generationDoc)) && (null == processusGenerationDoc || "".equals(processusGenerationDoc)) )
                {
                      chain.doFilter(request,response);
                }
                else
                {
                      request.getSession().removeAttribute("ProcessusGenerationInit");
     
                      // Stocker la reponse dans vResponseWrapperInit
                      response.setContentType("text/html;charset=UTF8");
                      chain.doFilter(request,vResponseWrapperInit);
     
                      //    appel de l'action d'edition de document
                      mConfig.getServletContext().getRequestDispatcher("/DemandeModifHCGEditerAccuseReception.do").forward(request, vResponseWrapper);
     
                      System.out.println("****************************************************");
                      System.out.println(vResponseWrapperInit.getResponseContent());
                      System.out.println("****************************************************");
                      System.out.println(vResponseWrapper.getResponseContent());
                      System.out.println("****************************************************");
     
                      //    Recupérer le html + stocker en base
                      WebApplicationContext vWac = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
     
                      DemandeVO vDemande = (DemandeVO) request.getSession().getAttribute("Demande");
     
                      SauvegardeDocument.enregistreDocumentHtml(vWac,vResponseWrapper.getResponseContent(),vDemande.getId().toString(),(byte) 1);
     
                      resp.getWriter().print(vResponseWrapperInit.getResponseContent());
                }
          }

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Par défaut
    Il faudrait que je fouille ma mémoire mais il me semble que ton problème viennent du fait que tes 2 response wrappers écrivent tous 2 deux dans le même output stream, qui est celui de la response originale.

    Pour être sûr il faudrait que nous puissions voir le code de ResponseWrapper.

    Si c'est simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class ResponseWrapper extends HttpServletResponseWrapper{
     
    }
    le problème est là...

Discussions similaires

  1. Filtre et servlet
    Par nasix dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/10/2008, 16h43
  2. Test d'un filtre de servlet
    Par hel22 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 09/02/2007, 15h35
  3. [Filtre de Servlet]Gerer les authorisations d'accès
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/07/2006, 09h34
  4. [Filtre de Servlet] Accès à un dossier
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/07/2006, 15h37
  5. [servlet][filtre] filtre qui n'est pas appelé
    Par felix79 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 29/06/2005, 20h09

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