Writing /home/infogasy/domains/wiki.infogasy.net/public_html/data/cache/f/f969561030e9a2faf4511795d9becbe1.xhtml failed

Fanorenana Informatika mampiasa ny tetika POJO faha VII

Mikasika ny « modèle de présentation » anaty MSL-POJO (tohiny) :

Alohan’ny hidirana @ny filalaovana ny « traitement de requête » nalefa avy @-na « formulaire » tanaty JSP dia tsara fantatra izany fa : 1. Ny serveur Jetty dia afaka mikarakara foana ; na io « code java » antsoina hoe « scriptlet » natao hihodina eo anivon’ny « serveur », na io fanehoana @ny endriny HTML ho an’ny mpanjifa miantso ireny JSP ireny 2. Raha hazavaina tsotra araka ny rafitra Servlet namboarin’ny Jetty avy @ilay JSP, dia hita izany fa mitovy rafitra @ny kilasy POJO mahazatra ihany, ny pejy JSP rehetra. Izany hoe :

Raha jerena tsotra dia izao no ijerentsika mapanao POJO ny endrik’ilay Servlet:

public final class pgPostInfogasy_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent 
{
	// DES DECLARATIONS Y COMPRIS NOS METHODES CONTROLLEURS
  	
public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException 
{
	// Algorithmes de traitement et de restitution au format HTML
}
}

Fanazavana tsotra : Hita @io rafitra io ary fa ny JSP rehetra dia “kilasy” avokoa, ary mandova ny kilasy HttpJspBase . Ity kilasy farany ity moa dia ny “conteneur” Jetty zany no manana ny famaritana azy ankapobeny, fa ny angatahiny @ny JSP rehetra, mba mora ny hihodinany araka izay ilana azy, dia ny mamorona ny laminasa anaty “methode” mitondra ny anarana : _jspService(HttpServletRequest request, HttpServletResponse response) . Io “méthode” io indray dia hita koa fa mila “arguments” karazana “objet” request sy response, rehefa mihodina …

Izany hoe rehefa misy izany fiantsoana ilay JSP (ohatra avy @ny fijerena tranonkala Firefox) dia io “méthode” _jspService(…) no mihodina anaty JVM misy ilay Jetty. Ny objet request moa natao hitondrana ireo “arguments” rehetra nalefan’ilay mpanjifa (ohatra avy @ireo “champ de formulaire”, toa ilay ohatra t@ny lesona teo aloha …); ny response koa natao hamaritana ny famoahana izay tiana hiverina any @’ilay mpanjifa (@ny endriny HTML matetika no mahazatra, nefa mety ho endriny hafa izany koa io an !!! …)

Raha @ny jery POJO zany dia tsy tokony ho olana mihitsy amintsika ny mampiditra sahady ao anaty kilasy JSP ny fanambarana kilasy na “variables” avy any an-kafa ao anatin’io kilasy JSP io. Ny tanjona @izay dia mora kokoa amin’izay ny fifandraisany @ny vainga hafa ao anaty sehatra misy ny “système” aorintsika.

Fandraisana ohatra fandefasana objet Post:

Toa izao ohatra ny ho alefan’ilay mpanjifa nampiasa Internet Explorer :

:wiki:pojo7_01.png

Misy zavatra 4 ireo tiana halefa @ilay mpanjifa ireo. Izireo no antsoina hoe : zavatra alefa @ny alalan’ny “soumission de formulaire” . Rehefa mampiasa JSP dia Jetty no manome avy hatrany karazana mpitondra ireo zavatra ireo ho any aminy (antsoina hoe “objets implicites” izireo …). Eto dia ny “objet” request no mitondra azireo. Ao anaty Dreamweaver raha tianao ho hita avy hoe iza avy ireo “méthodes” fampiasan’ireo “objets” ireo dia manoratra fostiny hoe : request. Ianao dia hitranga eo daholo izireo, ka dia ianao no misafidy izay tadiavinao hampiasana anaty kilasy JSP.

Fa alohan’ny hampisehoana ny rafitra laminasa hampidirina ao @ilay JSP dia tsara fantra aloha hoe : Inona no hatao ary rehefa manao io “soumission de requête” io isika ???…

1. Rehefa tsindriana zany ny bokotra “Envoyer” dia entin’ilay request ireo zavatra nampidirina ireo. 2. Ao anivon’ilay kilasy JSP kosa dia azontsika alaina ireo tanaty request ireo @ny méthode : getParameter(anarana champ formulaire) 3. Tiantsika halefa anaty tahiry maharitra ireo. Noho izany dia tokony hisy fanambarana koa izany ho ampiasaina raha hifandray @ilay rafitra mpitahiry Db4object isika … Tsy maintsy manamboatra connexion karazana objet Post toa ilay ohatra tany aloha isika izany. Avy eo manamboatra objet Post izay avy @ireo zavatra nentin’ireo request –ny Jetty. Farany dia mandefa ireo Post ireo anaty Db4object 4. Izay hetsika rehetra izay dia azontsika soratana daholo anaty kilasy JSP, fa ny mila fintandremana dia ny tsy hifangaroan’ireo code java @ny balise sy texte HTML. Ary io no olana ho @ny fampiasana JSP matetika, satria mety ho sarotra be ny “déboguage” rehefa laminasa goavana sy maro vainga no atao !… Azo ialana anefa izao rehefa manana “vision” mazava tsara ilay rafitra ianao

Aseho eto ambany avy hatrany moa ny ohatra iray azo anamboarana ilay fandefasana Post sy ny fiarahana miasa @ny rafitra mpitahiry (Ohatra finarana fosiny io fa tsy natao no hampiharina @ny sehatra tena izy …)

Ny JSP anaty Dreamweaver sy ahitana ireo anarana nomena ireo “champ de formulaire” : Rehefa atao “soumission” io formulaire io dia minatso foana ilay JSP anaty clé : action=”pgPostInfogasy.jsp” .

:wiki:pojo7_02.png

Ny déclarations ilaintsika anaty kilasy JSP sy ny traitement atao anaty méthode _jspService(…) :

Ny Import sy décalarations : Fiatombohan’ilay JSP pgPostInfogasy.jsp :

<%@ page contentType="text/html; charset=iso-8859-1" language="java" errorPage="" %>
<%@ page import="java.util.*,agir.msl.db4o.*,agir.msl.db4o.*"%>
<%@ page import="tetikaPOJO.Post" %>
<jsp:useBean id="post" scope="page" class="tetikaPOJO.Post"/>
Eto dia misy objet post iray amboarintsika.
Ny declaration-na “méthodes” ilaintsika anaty JSP dia tsy maintsy atao anaty balise : <%! ……………….. %>
<%!
// Les Déclarations de méthodes de la classe JSP
private String getJSPIdPost(HttpServletRequest request)
{
	if(null != request.getParameter("idPost")) return request.getParameter("idPost");
	else return "";
}
private Date getJSPDatePost(HttpServletRequest request)
{	return new Date(); }
private String getJSPTitre(HttpServletRequest request)
{
	if(null != request.getParameter("titre")) return request.getParameter("titre");
	else return "";
}
private int getJSPNiveau(HttpServletRequest request)
{
	try {
		if(null != request.getParameter("niveau")) return Integer.parseInt(request.getParameter("niveau"));
		else return 0;
	} catch(Exception e) { return 0; }
}
private String getJSPContenu(HttpServletRequest request)
{
	if(null != request.getParameter("contenu")) return request.getParameter("contenu");
	else return "";
}
private boolean getJSPVisu(HttpServletRequest request)
{
	try {
		if(null != request.getParameter("visu")) return new Boolean(request.getParameter("visu")).booleanValue();
		else return false;
	} catch(Exception e) { return false; }
}
%>

Ny traitement anaty méthode _jspService Ny traitement tokony hataontsika rehetra « côte serveur » dia tokony faritana anaty balise : <% …………%> Mazava ho azy fa mialohan’ny hamoahana vokatra any @ny mpanjifa no anaovana izany traitement izany …

<%
// Les appels des services externes à la classe JSP (tout ceci se passera dans la méthode _jspService(...))
Post conDb4o = new Post("TahiryDb4o.yap");
int nbre = conDb4o.getNbObjet();
post = new Post(String.valueOf(nbre),getJSPDatePost(request),getJSPTitre(request),getJSPContenu(request),getJSPNiveau(request));
if(0 != getJSPTitre(request).compareTo("")) // Création nouveau post
	conDb4o.creerObjetModele(post,post.getIdPost(),"idPost");
else if(getJSPVisu(request)) // Visualisation liste en bas
{
	post = (Post)conDb4o.getObjectModele(getJSPIdPost(request));
	if(null == post) post = new Post(true);
}
else
	post = new Post(true);
List listePost = conDb4o.getAllObject();
conDb4o.closeDb();
%>

Raha jerena io traitement ataontsika io dia hita fa : - nanokatra connection @ny Db4object isika - naka ireo zavatra nalefan’ilay formulaire tamin’ireo méthodes JSP getJSP<anaranaChamp>(request) . Nanamboarana objet Post izany. - Raha ohatra misy zavatra nalefa tao @ny Titre de alefaso anaty Db4o io Post io. Raha tsy izay dia tsy misy inona atao fa atranga fotsiny ilay page. - Atranga ary @ny listra ambany ary moa ireo efa voatahiry rehetra.

Ho hita aorian’ireo traitement ireo moa dia ny ampahany saika XHTML daholo no ho hita, afatsy ireo antsoina hoe scriptlet entina matetika hamoahana vokatra na anaovana filalaovana balise HTML daholo. Tsy maintsy faritana tsara anaty balise <%= expression %> na <% …… %> koa izireny.

Aseho ambany ary ny sasany mety ho hita anaty kilasy JSP miharo ireo contenu HTML: Ny déclaration mialoha ao anaty JSP :

:wiki:pojo7_03.png

Ny Traitement alohan’ny code XHTML: :wiki:pojo7_04.png

Ny Formulaire fandefasana Post : :wiki:pojo7_05.png

Ny faritra fampisehoana izay avy anaty Db4Object : :wiki:pojo7_06.png

Rehefa ahodina ary io fampiharana tsotra ahitana fiaraha-miasan’ny “modèle de persistence Db4Object” sy ny “modèle de presentation JSP” dia : :wiki:pojo7_07.png

Fehiny :

Hatreto zany dia fampisehoana fotsiny ohatra na fanorenana ny karazana “modely” roa dia ny “tahiry maharitra Db4Object” sy ny “fanehoana JSP” . Ny rafitra lehibe sy mampifandray ny fiasan’ireo modely vainga mety ho maro ireo moa dia rafitra laharana “ambony” antsointsika hoe : Service métier na Service domaine. Ao anatin’izy io dia ny lojikana’asa no mibaiko ny laminasa atao rehetra. Ny tetika MSL-POJO moa dia manana fomba fijery mametraka io Service iray lehibe io ambonin’ny modely rehetra araka ny sary hitantsika tary amboalohany. Ka hoho izany dia hojerentsika manaraka indray ny mikasika azy io raha toa faritana fa ASA FIKIRAKIRANA POST no tanjona @ity ohatra tsotra ity.

(hitohy)

 

pojofahavii.txt · Novaina farany:: 2008/09/11 12:43