Programmation web serveur 2, Master MIASHS, 2021-2022

This course aims at providing an overview of some technologies proposed by JakartaEE (ex JavaEE) for the development of we services. This includes:

Resources

We will use Maven for managing dependencies, building projects and deplying them. It is recommanded to have a look to the 5 minutes tutorial.

JakartaEE tutorial web site: https://github.com/eclipse-ee4j/jakartaee-tutorial.

A book on JAX-RS: RESTful Java with JAX­RS (Second Edition)

Outils à installer

Voici la liste des outils dont vous aurez besoin pour le cours (au moins au début).

Séance du 17/09/2021

Objectifs: Révision du protocole HTTP, créer un premier service web

REST un style d'architecture d'application backend qui fournisse sur le web des services pour d'autres applications. Ces autres applications peuvent être par exemple des interfaces, ou front-end, écrites en javascript (ou autre). Les sercice REST utilisent des URLs pour identifier les données et les méthodes du protocole HTTP (GET, POST, PUT, DELETE, etc.) pour manipuler les données. Les échanges de données entre le service web et le client se font généralement grâce au langages JSON ou XML. Le format peut être éventellement négocié entre client et le serveur. Toutes les requêtes sur un service REST sont indépendantes : il n'y a pas de données de "session" stockées au niveau du serveur et donc les données de l'état d'une conversation doivent être embarquées dans les requêtes et réponses.

Pour réviser le protocole HTTP, lire la page de wikipedia sur HTTP.

Pour cette première séance : le sujet et le code

Le site web utilisé pour construire le TP1

Séance du 01/10/2020

Objectifs:Mapping JSON et XML, Validation des objets via Jakarta Bean Validation et gestion des erreurs dans un WS

Sur cette séance nous allons étudier (1) les mapping JSON et XML, (2) la gestion des erreurs dans les services REST et leur notification au client. Le sujet du TP 2 et le projet Maven de départ et le projet à la fin du TP.

Quelques références :

Séance du 15/10/2021

Objectifs: Utilisation du socle de persistence JPA (Java Persistence API).

Pour cette séance, on étudiera l'utilisation d'un framework de persistence relationnel-objet. Le sujet du TP 3 et le projet Maven de départ. Un cours complet sur JPA.

Séance du 29/10/2021

Objectifs: Suite sur le socle de persistence JPA (Java Persistence API).

GenericJpaDao.java Un cours complet sur JPA.

Séance du 03/12/2021

Objectifs: Authentification / Json Web Token (JWT)

Le cours/TP sur JWT et quelques classes utiles

Matériel de l'année dernière 2020-2021

Séance du 15/10/2020

Objectifs: Utilisation du socle de persistence JPA (Java Persistence API).

Pour cette séance, on étudiera l'utilisation d'un framework de persistence relationnel-objet. Le matériel pour cette séance est ici.

Séance du 06/11/2020

Objectifs: Utilisation avancée de JPA. Sécurisation des services avec JWT JSON Web Token

Pour cette séance, nous utiliserons ce projet ainsi que ce document.

Material from previous years

Resources

Set up the working environment

The JavaEE development environnment is already installed in the university lab. We recommand you to install it at home, on your computer. To that extent, follow this procedure

Java Servlets

Java servlet are the basic building block of JavaEE. Recommanded reading:

Java Server Faces

Java Server Faces (JSF) is a server-side framework for building web apps. It is the technology promoted by JCP. It is/will be the successor of JSP (Java Server Page). It is a component oriented framework (at the difference of Spring MVC or Struts that are action based frameworks).

Java Persitence API

Java Persitence API is the official object/relational mapping framework of JavaEE. It allows to automatize the correspondance between objects and relational databases.

A correction of the TP is avalaible. To download and use it, follow the following steps:
Download the archive SempicJPA.tar.gz, then

tar xzf SempicJpa.tar.gz
cd SempicJpa
mvn package tomee:exec
java -jar target/SempicJPA-1-exec.jar
open the URL http://localhost:8080/SempicJPA-1

Authentification

Java EE provides some authenfication mechanisms for web apps. Until now there are not easy to use (It seems to be better since JavaEE 8). We will study here how to implements a basic auth mechanism and control the access to resources.

A correction of the TP is avalaible. To download and use it, follow the following steps:
Download the archive SempicAuth.tar.gz, then

tar xzf SempicAuth.tar.gz
cd SempicAuth
mvn package tomee:exec
java -jar target/SempicJPA-1.1-exec.jar
open the URL http://localhost:8080/SempicJPA-1.1

Projet 2019

Sujet du projet

Jena

Cours Jena