0% ont trouvé ce document utile (0 vote)
26 vues6 pages

Servlet et API REST en Java Spring

Transféré par

lafiselma
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues6 pages

Servlet et API REST en Java Spring

Transféré par

lafiselma
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice

· Créer une Servlet qui permet d'afficher les


noms et les valeurs des parametres envoyés
dans une requête HTTP tout en spécifiant la
méthode d'envoie.

import [Link].*;
import [Link].*;
import [Link].*;

public class InfosRequeteServlet extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

[Link]("text/html");
PrintWriter out = [Link]();

// Récupérer les paramètres de la requête


Enumeration<String> paramNames = [Link]();

// Afficher la méthode d'envoi de la requête


[Link]("Méthode d'envoi de la requête: " + [Link]() + "<br/><br/>");

// Afficher les paramètres de la requête avec leurs valeurs


[Link]("Paramètres de la requête :<br/><br/>");
while([Link]()) {
String paramName = [Link]();
String[] paramValues = [Link](paramName);

[Link]("Nom : " + paramName + "<br/>");


for(int i=0; i<[Link]; i++) {
[Link]("Valeur : " + paramValues[i] + "<br/>");
}
[Link]("<br/>");
}
}
}
<servlet>
<servlet-name>InfosRequeteServlet</servlet-name>
<servlet-class>[Link]</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>InfosRequeteServlet</servlet-name>
<url-pattern>/infosRequete</url-pattern>
</servlet-mapping>
· Compteur de visites

Exercice

Lors de la premiere visite il faut :


creer un nouveau cookie avec le nom "compteur", avec la valeur 1 et avec une
date d'expiration d'une année.
afficher le nombre de visites (qui est 1)
OLors de la nième visite il faut :
mettre à jour le cookie (valeur et date d'expiration)
afficher le nombre de visites

C'est votre première visite !

import [Link].*;
import [Link].*;
import [Link].*;

public class CompteurVisitesServlet extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

[Link]("text/html");
PrintWriter out = [Link]();

// Récupérer le cookie "compteur"


Cookie[] cookies = [Link]();
Cookie compteurCookie = null;
int nombreVisites = 0;
if (cookies != null) {
for (Cookie cookie : cookies) {
if ([Link]().equals("compteur")) {
compteurCookie = cookie;
nombreVisites = [Link]([Link]());
break;
}
}
}

// Si le cookie "compteur" n'existe pas, c'est la première visite


if (compteurCookie == null) {
compteurCookie = new Cookie("compteur", "1");
[Link](365 * 24 * 60 * 60); // 1 an en secondes
[Link](compteurCookie);
[Link]("C'est votre première visite !");
} else {
// Sinon, c'est une visite ultérieure
nombreVisites++;
[Link]([Link](nombreVisites));
[Link](compteurCookie);
[Link]("C'est votre visite numéro : " + nombreVisites);
}
}
}
Creez
permettant d'ajouter un message dans une session
et qui affiche les éventuels messages qui existent
dans la session

une

page qui contient un formulaire

Ajouter à la session

Messages dans la session :

Message 1 dans la session


Message 2 dans la session

import [Link].*;
import [Link].*;
import [Link].*;

public class MessageServlet extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

[Link]("text/html");
PrintWriter out = [Link]();

// Récupérer la session, ou en créer une nouvelle si elle n'existe pas


HttpSession session = [Link](true);

// Récupérer les messages existants dans la session


String[] messages = (String[]) [Link]("messages");

// Afficher les messages existants dans la session


[Link]("Messages dans la session :<br/><br/>");
if (messages != null) {
for (String message : messages) {
[Link](message + "<br/>");
}
}

// Afficher le formulaire pour ajouter un nouveau message


[Link]("<br/><br/>");
[Link]("<form method='post'>");
[Link]("Ajouter à la session :<br/>");
[Link]("<input type='text' name='newMessage'><br/>");
[Link]("<input type='submit' value='Ajouter'>");
[Link]("</form>");
}

public void doPost(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {

// Récupérer le nouveau message envoyé dans le formulaire


String newMessage = [Link]("newMessage");

// Récupérer la session, ou en créer une nouvelle si elle n'existe pas


HttpSession session = [Link](true);

// Récupérer les messages existants dans la session


String[] messages = (String[]) [Link]("messages");

// Ajouter le nouveau message à la liste des messages existants dans la session


if (messages == null) {
messages = new String[]{newMessage};
} else {
String[] newMessages = new String[[Link] + 1];
[Link](messages, 0, newMessages, 0, [Link]);
newMessages[[Link]] = newMessage;
messages = newMessages;
}

// Mettre à jour les messages dans la session


[Link]("messages", messages);

// Rediriger vers la servlet pour rafraîchir la page


[Link]([Link]() + "/MessageServlet");
}
}
· Créer une API REST permettant à un administrateur d'ajouter, de
modifier, de supprimer, et de consulter un produit ou plusieurs
produits en utilisant le framework Spring
. Créer une API REST permettant à un client de consulter les produits
en utilisant le framework Spring et de commander un produit.
. Un produit est decrit par un id, un libelle, un prix d'achat, un prix de
vente et une quantité en stock
@RestController
@RequestMapping("/admin/products")
public class AdminController {

@Autowired
private ProductRepository productRepository;

@PostMapping("/")
public Product addProduct(@RequestBody Product product) {
return [Link](product);
}

@PutMapping("/{id}")
public Product updateProduct(@PathVariable Long id, @RequestBody Product
productDetails) {
Product product = [Link](id)
.orElseThrow(() -> new ResourceNotFoundException("Product not found with id "
+ id));

[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());

return [Link](product);
}

@DeleteMapping("/{id}")
public ResponseEntity<?> deleteProduct(@PathVariable Long id) {
Product product = [Link](id)
.orElseThrow(() -> new ResourceNotFoundException("Product not found with id "
+ id));

[Link](product);
return [Link]().build();
}

@GetMapping("/")
public List<Product> getAllProducts() {
return [Link]();
}
}

@RestController
@RequestMapping("/client/products")
public class ClientController {
@Autowired
private ProductRepository productRepository;

@GetMapping("/")
public List<Product> getAllProducts() {
return [Link]();
}

@PostMapping("/order/{id}")
public ResponseEntity<String> orderProduct(@PathVariable Long id) {
// Logique pour passer la commande du produit avec l'ID donné
return [Link]("Commande passée pour le produit avec l'ID : " + id);
}
}

Vous aimerez peut-être aussi