C'est une bonne pratique de toujours utiliser les objets Wrapper (Long à la place de long par exemple) dans les beans dont les propriétés correspondent à des champs d'une base de données.
<body>
<p>
Récupération du bean :
<%
com.sdzee.beans.Coyote notreBean = (com.sdzee.beans.Coyote) request.getAttribute("coyote");
out.println( notreBean.getPrenom() );
out.println( notreBean.getNom() );
%>
</p>
</body>
package com.sdzee.servlets;
// .. imports
import com.sdzee.beans.Coyote;
public class Test extends HttpServlet {
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
/* Instanciiation du bean */
Coyote premierBean = new Coyote();
/* Initialisation de ses propriétés */
premierBean.setNom( "Coyote" );
premierBean.setPrenom( "Wile E." );
/* Stockage du bean dans l'objet request */
request.setAttribute( "coyote", premierBean );
/* Transmission de la paire d'objets request/response à notre JSP */
this.getServletContext().getRequestDispatcher( "/WEB-INF/test.jsp" ).forward( request, response );
}
}
/* Cet objet est une classe publique */
public class MonBean implements Serializable {
/* Cet objet ne possède aucun constructeur, Java lui assigne donc un constructeur par défaut public et sans paramètre. */
/* Les champs de l'objet ne sont pas publics (ce sont donc des propriétés) */
private String proprieteNumero1;
private int proprieteNumero2;
/* Les propriétés de l'objet sont accessibles via des getters et setters publics */
public String getProprieteNumero1() {
return this.proprieteNumero1;
}
public int getProprieteNumero2() {
return this.proprieteNumero2;
}
public void setProprieteNumero1( String proprieteNumero1 ) {
this.proprieteNumero1 = proprieteNumero1;
}
public void setProprieteNumero2( int proprieteNumero2 ) {
this.proprieteNumero2 = proprieteNumero2;
}
/* Cet objet suit donc bien la structure énoncée : c'est un bean ! */
}