Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

La FAQ Java EEConsultez toutes les FAQ

Nombre d'auteurs : 27, nombre de questions : 83, dernière mise à jour : 26 avril 2013 

 
OuvrirSommaireJSPGénéralités

Cela dépend de la version de J2EE que vous utilisez :

Avec J2EE 1.4, les EL sont directement intégré dans le moteur JSP 2.0. Toutefois l'application doit obligatoirement être déclaré comme une application Servlet 2.4 au minimum :

 
Sélectionnez
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	version="2.4">

Si ce n'est pas le cas les EL seront désactivées afin de ne pas compromettre le fonctionnement d'application J2EE postérieur.

Il est toujours possible de désactiver les EL sur une page particulière en utilisant la directive page :

 
Sélectionnez
<%@ page isELIgnored="false" %>

Il est également possible d'utiliser les EL avec une version antérieur de J2EE, mais dans ce cas ce n'est pas le moteur JSP qui traitera les EL mais une librairie de tag compatible. Ainsi on peut utiliser la JSTL 1.0 ou Struts-EL qui intègre une gestion des EL. Attention toutefois, ces librairies ne sont pas concus pour être utilisées dans une application J2EE 1.4. Dans ce cas il faut utiliser une version sans EL afin de les laisser au moteur JSP 2.0 (respectivement JSTL 1.1 et Struts).

Créé le 22 décembre 2009  par adiGuba

Il faut commencer par récupérer un RequestDispatcher qui va servir de wrapper pour la ressource (le fichier JSP en l'occurence). Pour récupérer ce dispatcher, il faut passer le contexte de la servlet :

 
Sélectionnez
RequestDispatcher rd = servletContext.getRequestDispatcher(jsp);

Ensuite, il faut configurer la requête. Pour cela, c'est simple, il faut simplement passer les attributs nécessaires à la page avec la méthode setAttributes.

Après cela, il faut configurer l'objet response. Ici, on est obligé de créer notre propre classe de réponse pour pouvoir écrire dans un String :

 
Sélectionnez
public class FictiveHttpServletResponse extends HttpServletResponseWrapper {
	private StringWriter replacementWriter;
 
	public FictiveHttpServletResponse(HttpServletResponse response) {
	    super(response);
	    
	    replacementWriter = new StringWriter();
	  }
	 
	  public PrintWriter getWriter() throws IOException {
	    return new PrintWriter(replacementWriter);
	  }
	 
	  public String toString() {
	    return replacementWriter.toString();
	  }
}

Ensuite, on peut récupérer le contenu de la page :

 
Sélectionnez
HttpServletResponse newResponse = new FictiveHttpServletResponse((HttpServletResponse) response);
				
rd.forward(request, newResponse);
 
String monMessage = newResponse.toString();

Avec ça, la variable monMessage contiendra le contenu HTML généré par la page JSP.

Créé le 22 décembre 2009  par zag

(si on est en jsp 2.0 (tomcat 5.0 par exemple))

dans web.xml

 
Sélectionnez
<jsp-config> 
	<jsp-property-group>
		<url-pattern>*.jsp</url-pattern>
		<include-prelude>/includes/header.jsp</include-prelude>
		<include-coda>/includes/footer.jsp</include-coda>
	</jsp-property-group> 
</jsp-config>
Créé le 16 février 2005  par lunatix
 
Sélectionnez
Enumeration en = request.getParameterNames(); 
while (en.hasMoreElements()) { 
	String pName = (String) en.nextElement();
	log.debug(pName + "=" + request.getParameter(pName)); //
	System.out.println(pName + "=" + request.getParameter(pName)); 
}
Créé le 16 février 2005  par syj
 
Sélectionnez
java.util.Enumeration en= request.getAttributeNames(); 
while (en.hasMoreElements()) { 
	String name = (String) en.nextElement(); 
	if(request.getAttribute(name) == null) { 
		log.debug(name + "=NULL"); 
	} else { 
		log.debug(name + "=" + request.getAttribute(name).toString()); 
	}
}
Créé le 16 février 2005  par syj

Voici la page d'erreur que l'on utilise. Elle n'est utile qu'en phase de développement.
Mais elle permet de determiner rapidement les problèmes qui peuvent surgir.

 
Sélectionnez
<%@ page language="java" isErrorPage="true" %>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
	<head>
		<title>Page d'erreur</title>
	</head>
	<body bgcolor="#FFFFFF">
		<div>Une erreur s'est produite !</div>
		<h1>Attribut de requete</h1>
		<div class="requestAttributs">
			<% 
				java.util.Enumeration en = request.getAttributeNames(); 
				while (en.hasMoreElements()) { 
					String name = (String) en.nextElement(); 
					if(request.getAttribute(name) == null) { 
			%>
			<div>
						<%=name%>=null
			</div>
			<% 
					} else { 
			%>
			<div>
					<%=name%>=<%=request.getAttribute(name).toString()%>
			</div>
			<%
					} 
				} 
			%>
		</div>

		<div class="requestParameters">
			<% 
				en=request.getParameterNames(); 
				while (en.hasMoreElements()) { 
					String name = (String) en.nextElement(); 
					if(request.getParameter(name) == null) { 
			%>
			<div>
						<%=name%>=null
			</div>
			<%
					} else { 
			%>
			<div>
						<%=name%>=<%=request.getParameter(name).toString()%>
			</div>
			<%
					}
				}
			%>
		</div>

		<h1>Exception</h1> 
		<div>
			<% 
				Throwable th = pageContext.getException(); 
				if(th != null) { 
					printRecursiveException(out,th); 
				} 
			%>
		</div>

		<%! public void printRecursiveException(JspWriter out, Throwable th) throws java.io.IOException {
				out.println("<div>" + th.getClass().getName() + ":" + th.getMessage() + "</div>");
				StackTraceElement ste; 
				for(int x=0;x < th.getStackTrace().length;x++) {	
					out.println("<div>" + th.getStackTrace()[x].toString() + "</div>");
				}

				Throwable parent = th.getCause(); 
				if(parent != null) { 
					out.println("<div class=\"parentCause\">");
					printRecursiveException(out,parent);
					out.println("</div>"); 
				} 
			} 
		%>
	</body>
</html>
Créé le 16 février 2005  par syj
 
Sélectionnez
<error-page>
	<exception-type>java.lang.Throwable</exception-type>
	<location>/error.jsp</location>
</error-page>

Note: L'insertion doit se faire entre session-config et ressource-ref mais je ne suis pas sur que çà soit le session-config et ressource-ref qui entoure directement cette balise.

Créé le 16 février 2005  par syj

Des objets sont dit implicites car il ne nous est pas nécessaire de les déclarer ou de les initialiser
Les objest le plus souvent utilisés sont:

  • request : lorsqu'un navigateur envoie une requête vers le serveur, il est possible que celui-ci envoie un certain nombre de paramètres.
    Il existe deux sortes de paramètres :
    • Les paramètres se trouvant dans l'URL comme par exemple http://www.monsite.com/path/de/ma/page?param1=valeur1&param2=valeur2
    • Les paramètres de formulaire: ces dernier sont transmis dans le corps de la requête
  • response : cet objet contient la réponse envoyée au client. La portée de cette instance est la page
  • out : peut être employé dans les scriptlets pour écrire des données dans la page qui sera envoyée au client. La portée de cette instance est la page
  • session : cet objet contient, comme son nom l'indique, tous les objets relatif à la session
Créé le 19 février 2005  par Stessy
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 - 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.