Commit fc60ee30 authored by Lefebvre michael's avatar Lefebvre michael

tp3 servlet cinema ok

parent 5a6bd4dc
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
\ No newline at end of file
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 10:58
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta http-equiv="Refresh" content="0; URL=process?action=init"/>
</head>
</html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 13:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Choix d'un acteur</title>
</head>
<body>
<form method="post" action="process?action=carriere">
<fieldset>
<legend>Choix d'un acteur</legend>
<label>Acteur : </label>
<select name="acteur">
<c:forEach var="acteur" items="${ensActeurs}">
<option value="${acteur.nacteur}">
${acteur.nom} ${acteur.prenom}
</option>
</c:forEach>
</select>
<br>
<input type="submit" value="Envoie">
</fieldset>
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 13:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Affiche les informations du film</title>
</head>
<body>
<h3>Informations su le film : ${film.titre}</h3>
Realisateur : ${film.nomRealisateur}<br>
Genre : ${film.ngenre}<br>
Entrée : ${film.entrees}<br>
Sortie : ${film.sortie}<br>
Pays : ${film.pays}<br>
<br>
<a href="process?action=init">Home</a>
</body>
</html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 13:33
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Carriere d'un acteur</title>
</head>
<body>
Carrière de ${acteur.prenom} ${acteur.nom}
<br>
<table>
<thead>
<tr>
<th>Réalisateur</th>
<th>titre</th>
<th>nature</th>
</tr>
</thead>
<tbody>
<c:forEach var="film" items="${carriere}">
<tr>
<td>
${film.nomRealisateur}
</td>
<td>
<a href="process?action=infofilm&nfilm=${film.nfilm}">
${film.titre}
</a>
</td>
<td>
${film.ngenre}
</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/web" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="Tomcat 9.0.311" level="application_server_libraries" />
<orderEntry type="library" name="mysql-connector-java-5.1.6-bin" level="project" />
<orderEntry type="library" name="jstl-api-1.2" level="project" />
</component>
</module>
\ No newline at end of file
package control;
import dao.CinemaDAO;
import dto.ActeurDTO;
import dto.FilmDTO;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/process")
public class CarriereServlet1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
//navigation
private void forward(String url, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher rd = request.getRequestDispatcher(url);
rd.forward(request, response);
}
//routage
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
//recupertaion de l'action
String action = request.getParameter("action");
System.out.println("test");
//execution du traitement
switch (action){
case("init") :
doInit(request,response);
break;
case ("carriere") :
doCarriere(request,response);
break;
case ("infofilm") :
doInfoFilm(request,response);
break;
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
protected void doInit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
if (request.getSession().getAttribute("ensActeurs")==null){
List<ActeurDTO> ensActeurs = CinemaDAO.getInstance().findAllActeurs();
request.getSession().setAttribute("ensActeurs" , ensActeurs);
}
String url = "pages/afficheActeur.jsp";
forward(url, request, response);
}
protected void doCarriere(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//recuperation du numero du film
String choix = request.getParameter("acteur");
int nacteur = Integer.parseInt(choix);
//interogation du model afin de recuperer les film de cet acteur ainsi que l'acteur
CinemaDAO facade = CinemaDAO.getInstance();
List<FilmDTO> ensFilms = facade.findFilmsOfActeur(nacteur);
ActeurDTO acteur = facade.findAllActeursById(nacteur);
//sauvegarde de l'acteur et de la cariere dans le scope request
request.setAttribute("acteur", acteur);
request.setAttribute("carriere", ensFilms);
//cinelatique
String url = "pages/carriere.jsp";
forward(url, request, response);
}
protected void doInfoFilm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//recuperation du numero de film
String choix = request.getParameter("nfilm");
int nfilm = Integer.parseInt(choix);
//Interrogation du model pour recuperer le DTO film
CinemaDAO facade = CinemaDAO.getInstance();
FilmDTO film = facade.findFilmById(nfilm);
// sauvegarde du film
request.setAttribute("film", film);
//cinematique
String url = "pages/afficheInfoFilm.jsp";
forward(url, request, response);
}
}
This diff is collapsed.
package dto;
import java.io.Serializable;
import java.util.Date;
public class ActeurDTO implements Serializable {
// ---------------------attributs d'instance-------------------------
private static final long serialVersionUID = 1L;
private int nacteur;
private String nom;
private String prenom;
//---------------------------G E T T E R -----------------------------
public static long getSerialVersionUID() {
return serialVersionUID;
}
public int getNacteur() {
return nacteur;
}
public String getNom() {
return nom;
}
public String getPrenom() {
return prenom;
}
//--------------------------------------C O N S T R U C T E U R ------------------------
public ActeurDTO(int nacteur, String nom, String prenom) {
super();
this.nacteur = nacteur;
this.nom = nom;
this.prenom = prenom;
}
//---------------------------------------T O S T R I N G------------------------------------------
@Override
public String toString() {
return "ActeurDTO{" +
"nacteur=" + nacteur +
", nom='" + nom + '\'' +
", prenom='" + prenom + '\'' +
'}';
}
}
package dto;
import java.io.Serializable;
public class FilmDTO implements Serializable {
// ---------------------attributs d'instance-------------------------
private static final long serialVersionUID = 1L;
private int nfilm ;
private String titre;
private String nomRealisateur;
private String ngenre;
private int entrees;
private String sortie;
private String pays;
// ---------------------------- G E T T E R --------------------------
public int getNfilm() {
return nfilm;
}
public void setNfilm(int nfilm) {
this.nfilm = nfilm;
}
public String getTitre() {
return titre;
}
public void setTitre(String titre) {
this.titre = titre;
}
public String getNomRealisateur() {
return nomRealisateur;
}
public void setNomRealisateur(String nomRealisateur) {
this.nomRealisateur = nomRealisateur;
}
public String getNgenre() {
return ngenre;
}
public void setNgenre(String ngenre) {
this.ngenre = ngenre;
}
public int getEntrees() {
return entrees;
}
public void setEntrees(int entrees) {
this.entrees = entrees;
}
public String getSortie() {
return sortie;
}
public void setSortie(String sortie) {
this.sortie = sortie;
}
public String getPays() {
return pays;
}
public void setPays(String pays) {
this.pays = pays;
}
// ----------------------- C O N S T R U C T E U R ---------------------------------
public FilmDTO(int nfilm, String titre, String nomRealisateur, String ngenre, int entrees, String sortie, String pays) {
this.nfilm = nfilm;
this.titre = titre;
this.nomRealisateur = nomRealisateur;
this.ngenre = ngenre;
this.entrees = entrees;
this.sortie = sortie;
this.pays = pays;
}
public FilmDTO(int nfilm, String titre, String nomRealisateur, String ngenre) {
this.nfilm = nfilm;
this.titre = titre;
this.nomRealisateur = nomRealisateur;
this.ngenre = ngenre;
}
//--------------------------- T O S T R I N G ---------------------------------------
@Override
public String toString() {
return "FilmDTO{" +
"nfilm=" + nfilm +
", titre='" + titre + '\'' +
", nomRealisateur='" + nomRealisateur + '\'' +
", ngenre='" + ngenre + '\'' +
", entrees=" + entrees +
", sortie='" + sortie + '\'' +
", pays='" + pays + '\'' +
'}';
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
\ No newline at end of file
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 10:58
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta http-equiv="Refresh" content="0; URL=process?action=init"/>
</head>
</html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 13:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Choix d'un acteur</title>
</head>
<body>
<form method="post" action="process?action=carriere">
<fieldset>
<legend>Choix d'un acteur</legend>
<label>Acteur : </label>
<select name="acteur">
<c:forEach var="acteur" items="${ensActeurs}">
<option value="${acteur.nacteur}">
${acteur.nom} ${acteur.prenom}
</option>
</c:forEach>
</select>
<br>
<input type="submit" value="Envoie">
</fieldset>
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 13:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Affiche les informations du film</title>
</head>
<body>
<h3>Informations su le film : ${film.titre}</h3>
Realisateur : ${film.nomRealisateur}<br>
Genre : ${film.ngenre}<br>
Entrée : ${film.entrees}<br>
Sortie : ${film.sortie}<br>
Pays : ${film.pays}<br>
<br>
<a href="process?action=init">Home</a>
</body>
</html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: michael
Date: 25/02/2020
Time: 13:33
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Carriere d'un acteur</title>
</head>
<body>
Carrière de ${acteur.prenom} ${acteur.nom}
<br>
<table>
<thead>
<tr>
<th>Réalisateur</th>
<th>titre</th>
<th>nature</th>
</tr>
</thead>
<tbody>
<c:forEach var="film" items="${carriere}">
<tr>
<td>
${film.nomRealisateur}
</td>
<td>
<a href="process?action=infofilm&nfilm=${film.nfilm}">
${film.titre}
</a>
</td>
<td>
${film.ngenre}
</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment