Outils pour utilisateurs

Outils du site


helloworld:web:java:jsp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
helloworld:web:java:jsp [2016/11/06 12:58] – Ajout de l'exemple MVC servlet + JSP roothelloworld:web:java:jsp [2020/05/11 00:25] (Version actuelle) – Suppression de la taille par défaut pour les images root
Ligne 1: Ligne 1:
 Une page ''JSP'' utilise du code ''HTML'' dans lequel est mis du code ''Java''. Le code généré par les appels aux fonctions ''JSP'' est du ''HTML 4.01''. Une page ''JSP'' utilise du code ''HTML'' dans lequel est mis du code ''Java''. Le code généré par les appels aux fonctions ''JSP'' est du ''HTML 4.01''.
  
-<note>Tous les exemples ci-dessous utilisent le [[helloworld:design_pattern:bean:java|BeanPersonne]].</note>+<WRAP center round info 60%> 
 +Tous les exemples ci-dessous utilisent le [[helloworld:design_pattern:bean:java|BeanPersonne]]. 
 +</WRAP>
  
 =====Cycle de vie===== =====Cycle de vie=====
-{{:helloworld:web:java:jsp:cycle_de_vie.png?300|Cycle de vie}} +{{:helloworld:web:java:jsp:cycle_de_vie.png|Cycle de vie}} 
-[[https://openclassrooms.com/courses/creez-votre-application-web-avec-java-ee/servlet-avec-vue|Source]] {{:helloworld:web:java:jsp:servlet_avec_vue.htm.maff|Archive}}+[[https://openclassrooms.com/en/courses/626954-creez-votre-application-web-avec-java-ee/619743-servlet-avec-vue|Servlet avec vue…]] {{ :helloworld:web:java:jsp:servlet_avec_vue_-_creez_votre_application_web_avec_java_ee_-_openclassrooms_2020-04-26_9_30_02_pm_.html |Archive du 03/10/2017 le 26/04/2020}}
  
 +Sous Eclipse, les ''.jsp'' sont transformés en ''.java'' dans le dossier (ici avec [[helloworld:web:java:jsp_jstl_el|JSTL]]) ''workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/jstl/org/apache/jsp/''.
 =====Création du projet===== =====Création du projet=====
-Nécessite un projet de type [[ide:eclipse:howto:projet|Dynamic Web Project]].+Nécessite un projet de type [[ide:eclipse:projet|Dynamic Web Project]].
  
-{{:helloworld:web:java:jsp:web-module.gif?442|Architecture du projet}}+{{:helloworld:web:java:jsp:web-module.gif|Architecture du projet}}
  
-[[http://docs.oracle.com/javaee/5/tutorial/doc/bnadx.html|Source]], {{ :helloworld:web:java:javaeetutorial5.pdf |Archive}}+[[http://docs.oracle.com/javaee/5/tutorial/doc/bnadx.html|The Java EE 5 Tutorial]], {{ lang:java:javaeetutorial5.pdf |Archive}} 
 + 
 +=====Syntaxe===== 
 +''<%-- --%>'' : commentaire JSP; 
 + 
 +''<%! %>'' : déclaration d’une variable; 
 + 
 +''<% %>'' : inclusion de code Java quelconque; 
 + 
 +''<%= %>'' : affichage d'un variable. 
 + 
 +''<%@ %>'' : directives. 
 +    * ''%%<%@ page language="java"%>%%'' : langage Java, 
 +    * ''%%<%@ page contentType="text/html;%>%%'' : Contenu HTML, 
 +    * ''%%<%@ page pageEncoding="UTF-8"%>%%'' : Encodage UTF-8, 
 +    * ''%%<%@ page import="java.util.List, com.llgc.Liste6"%>%%'' : import de package Java, 
 +    * ''%%<%@ taglib uri="WEB-INF/tagperso.tld" prefix="tag"%>%%'' : déclaration d'une tag librairie, 
 +    * ''%%<%@ include file="header.jsp" %>%%'' : inclusion d'un fichier. 
 + 
 +''${ }'' : évaluation d'une expression en Java, remplace ''<%= %>''
 + 
 + 
 +=====Confidentialité===== 
 +    * ''page'' : la page JSP qui a créé la donnée, 
 +    * ''request'' : la donnée est transmissible par des ''forward'' ou à d'autres ''JSP'' grâce à la servlet, 
 +    * ''session'' : variable session, communication entre servlet, 
 +    * ''application'' : tout le monde, communication entre les clients. 
 + 
 +{{:helloworld:web:java:jsp:session-request-and-page-scope.jpg|Diagramme de portée}} 
 + 
 +<del>[[http://sourcecodemania.com/j2ee-jsp-basics/|J2EE JSP Basics]]</del> {{ :helloworld:web:java:jsp:j2ee_jsp_basics_java_programming_sourcecodemania.com_2020-04-26_9_34_51_pm_.html |Archive du 2012 le 26/04/2020}} 
 + 
 +    * Les variables accessibles à une page JSP en fonction des portées sont ''pageScope'', ''requestScope'', ''sessionScope'' et ''applicationScope''
 + 
 +=====Variables implicites pour toutes les pages JSP===== 
 + 
 +    * ''pageContext'' : Information sur l'environnement serveur [[https://www.tutorialspoint.com/jsp/jsp_implicit_objects.htm|JSP - Implicit Objects]] {{ :helloworld:web:java:jsp:jsp_-_implicit_objects_-_tutorialspoint_2020-04-26_9_50_47_pm_.html |Archive du 2010 le 26/04/2020}}. 
 +        * ''pageContext.request'' : This is the HttpServletRequest object associated with the request. 
 +        * ''pageContext.response'' : This is the HttpServletResponse object associated with the response to the client. 
 +        * ''pageContext.out'' : This is the PrintWriter object used to send output to the client. 
 +        * ''pageContext.session'' : This is the HttpSession object associated with the request. 
 +        * ''pageContext.application'' : This is the ServletContext object associated with application context. 
 +        * ''pageContext.config'' : This is the ServletConfig object associated with the page. 
 +        * ''pageContext.pageContext'' : This encapsulates use of server-specific features like higher performance JspWriters. 
 +        * ''pageContext.page'' : This is simply a synonym for this, and is used to call the methods defined by the translated servlet class. 
 +        * ''pageContext.exception'' : The Exception object allows the exception data to be accessed by designated JSP. 
 + 
 +    * ''param'' : Les paramètres de la requête HTTP s'il n'y a qu'une seule valeur, 
 + 
 +    * ''paramValues'' : Les paramètres de la requête HTTP s'il y a plusieurs valeurs, 
 + 
 +    * ''header'' : Les paramètres de l'en-tête HTTP s'il n'y a qu'une seule valeur, 
 + 
 +    * ''headerValues'' : Les paramètres de l'en-tête HTTP s'il y a plusieurs valeurs, 
 + 
 +    * ''cookie'' : Les cookies, 
 + 
 +    * ''initParam'' : Le fichier ''web.xml'', 
 + 
 +[[https://docs.oracle.com/cd/E19575-01/819-3669/bnaij/index.html|Implicit Objects]], {{ lang:java:javaeetutorial5.pdf |Archive, page 161}}
  
 =====Exemple 0 - Page non dynamique===== =====Exemple 0 - Page non dynamique=====
Ligne 154: Ligne 216:
  
 Rendu du formulaire : Rendu du formulaire :
-{{:helloworld:web:java:jsp:rendu_ex3-1.png?312|Rendu du formulaire}}+{{:helloworld:web:java:jsp:rendu_ex3-1.png|Rendu du formulaire}}
  
 Rendu de la réponse : Rendu de la réponse :
-{{:helloworld:web:java:jsp:rendu_ex3-2.png?312|Rendu de la réponse}}+{{:helloworld:web:java:jsp:rendu_ex3-2.png|Rendu de la réponse}}
  
  
 =====Exemple 3b - JSP + Servlet===== =====Exemple 3b - JSP + Servlet=====
-Mettre le code Java dans la page JSP peut être acceptable pour de petits projets mais pas plus ([[http://www.oracle.com/technetwork/articles/java/servlets-jsp-140445.html|Source]]{{ :helloworld:web:java:jsp:servlets_and_jsp_pages_best_practices.html.maff |Archive}}).+Mettre le code Java dans la page JSP peut être acceptable pour de petits projets mais pas plus ([[http://www.oracle.com/technetwork/articles/java/servlets-jsp-140445.html|Servlets and JSP Pages Best Practices]] {{ :helloworld:web:java:jsp:servlets_and_jsp_pages_best_practices_2020-04-27_10_54_33_am_.html |Archive du 03/2003 le 27/04/2020}}
  
 <file xml convinput.jsp> <file xml convinput.jsp>
Ligne 202: Ligne 264:
 </file> </file>
  
-<note>''requestScope.temperature'' existe grâce à ''request.setAttribute("temperature", temp);''+<WRAP center round info 60%> 
 +''requestScope.temperature'' existe grâce à ''%%request.setAttribute("temperature", temp);%%''
  
-''temperature.celsius'' va automatiquement chercher la méthode ''getCelsuis''. Il est donc impératif de correctement nommer ses méthodes dans les classes Java. +''temperature.celsius'' va automatiquement chercher la méthode ''getCelsuis'' (''isCelsuis'' si la méthode renvoie un boolean). Il est donc impératif de correctement nommer ses méthodes dans les classes Java. 
-</note>+</WRAP>
  
 <file java Temperature.java> <file java Temperature.java>
Ligne 318: Ligne 381:
  
 Rendu du formulaire : Rendu du formulaire :
-{{:helloworld:web:java:jsp:rendu_3b-1.png?634|Rendu du formulaire}}+{{:helloworld:web:java:jsp:rendu_3b-1.png|Rendu du formulaire}}
  
 Rendu de la réponse : Rendu de la réponse :
-{{:helloworld:web:java:jsp:rendu_3b-2.png?484|Rendu de la réponse}}+{{:helloworld:web:java:jsp:rendu_3b-2.png|Rendu de la réponse}}
  
 =====Exemple 3c - avec validation des données===== =====Exemple 3c - avec validation des données=====
helloworld/web/java/jsp.1478433534.txt.gz · Dernière modification : 2016/11/06 12:58 de root