1 pièce(s) jointe(s)
RequestDispatcher, étrange comportement
Bonjour,
Je suis en train d'essayer d'utiliser l'interface RequestDispatcher dans un exemple tout bête afin d'essayer de comprendre comment cela fonctionne.
Ce que j'aimerais faire c'est afficher une page HTML depuis une servlet, puis en fin de page afficher un pied de page fournit par une autre servlet (je sais ça ne sert à rien et conceptuellement c'est nul ... c'est juste pour comprendre).
Voilà le code de ma servlet "principale" :
Code:
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
|
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.util.*;
import java.text.*;
import java.lang.*;
public class ServletPrincipal extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
RequestDispatcher dispatch = getServletContext().getRequestDispatcher("/entete");
out.println("<HTML><HEAD><TITLE> Exemple 4 - Dispatcher </TITLE></HEAD><BODY>");
out.println("<H4>Contenu de la page ...</H4>");
dispatch.include(request, response);
out.println("</BODY></HTML>");
out.flush();
out.close();
}
} |
voici le code de ma Servlet devant me fournir le pied de page :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.util.*;
import java.text.*;
import java.lang.*;
public class MonDispatcher {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
output(request, response);
}
private void output(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<H1> mon pied de page </h1>");
}
} |
et voici mon fichier web.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Exemple4-Servlet-Dispatcher</display-name>
<servlet>
<servlet-name>exemple4</servlet-name>
<servlet-class>ServletPrincipal</servlet-class>
</servlet>
<!-- servlet "dispatcher" -->
<servlet>
<servlet-name>entete</servlet-name>
<servlet-class>MonDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>exemple4</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app> |
Le résultat dans le navigateur est surprenant, le texte "Contenu de la page ..." s'affiche un grand nombre de fois mais jamais mon poed de page (voir la pièce jointe).
Auriez-vous une idée du problème ?
Merci de votre aide.