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);
}
}