Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
helloworld:web:java:jsp [2016/11/26 20:47] – ↷ Liens modifiés en raison d'un déplacement. root | helloworld:web:java:jsp [2020/05/11 00:25] (Version actuelle) – Suppression de la taille par défaut pour les images root |
---|
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: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===== | =====Syntaxe===== |
| |
''<%@ %>'' : directives. | ''<%@ %>'' : directives. |
* ''<%@ page language="java"%>'' : langage Java, | * ''%%<%@ page language="java"%>%%'' : langage Java, |
* ''<%@ page contentType="text/html;%>'' : Contenu HTML, | * ''%%<%@ page contentType="text/html;%>%%'' : Contenu HTML, |
* ''<%@ page pageEncoding="UTF-8"%>'' : Encodage UTF-8, | * ''%%<%@ page pageEncoding="UTF-8"%>%%'' : Encodage UTF-8, |
* ''<%@ page import="java.util.List, com.llgc.Liste6"%>'' : import de package Java, | * ''%%<%@ 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, | * ''%%<%@ taglib uri="WEB-INF/tagperso.tld" prefix="tag"%>%%'' : déclaration d'une tag librairie, |
* ''<%@ include file="header.jsp" %>'' : inclusion d'un fichier. | * ''%%<%@ include file="header.jsp" %>%%'' : inclusion d'un fichier. |
| |
''${ }'' : évaluation d'une expression en Java, remplace ''<%= %>''. | ''${ }'' : évaluation d'une expression en Java, remplace ''<%= %>''. |
* ''application'' : tout le monde, communication entre les clients. | * ''application'' : tout le monde, communication entre les clients. |
| |
{{:helloworld:web:java:jsp:session-request-and-page-scope.jpg?600|Diagramme de portée}} | {{:helloworld:web:java:jsp:session-request-and-page-scope.jpg|Diagramme de portée}} |
| |
[[http://sourcecodemania.com/j2ee-jsp-basics/|Source]], {{ :helloworld:web:java:jsp:j2ee_jsp_basics_java_programming_sourcecodemania.com.htm.maff |Archive}} | <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''. | * Les variables accessibles à une page JSP en fonction des portées sont ''pageScope'', ''requestScope'', ''sessionScope'' et ''applicationScope''. |
=====Variables implicites pour toutes les pages JSP===== | =====Variables implicites pour toutes les pages JSP===== |
| |
* ''pageContext'' : Information sur l'environnement serveur [[https://www.tutorialspoint.com/jsp/jsp_implicit_objects.htm|Source]], {{ :helloworld:web:java:jsp_jstl_el:jsp_implicit_objects.htm.maff |Archive}}. | * ''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.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.response'' : This is the HttpServletResponse object associated with the response to the client. |
* ''initParam'' : Le fichier ''web.xml'', | * ''initParam'' : Le fichier ''web.xml'', |
| |
[[https://docs.oracle.com/cd/E19575-01/819-3669/bnaij/index.html|Source]], {{ :helloworld:web:java:javaeetutorial5.pdf |Archive, page 161}} | [[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===== |
| |
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> |
</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'' (''isCelsuis'' si la méthode renvoie un boolean). 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> |
| |
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===== |