Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Controllers; import Service.ConnexionService; import Service.InscriptionService; import Service.ProfilService; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; /** * * @author tbenoist */ @Controller public class CompteController { @Autowired ConnexionService connexionService; @Autowired ProfilService profilService; @Autowired InscriptionService inscriptionService; // Gestion des requtes GET ==================================================== @RequestMapping(value = "connexion", method = RequestMethod.GET) public String connexion() { return "connexion"; } @RequestMapping(value = "inscription", method = RequestMethod.GET) public String inscription() { return "inscription"; } // Gestion de la deconnexion @RequestMapping(value = "deconnexion", method = RequestMethod.GET) public ModelAndView deconnexion(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView("connexion"); // Cration de la session HttpSession session = request.getSession(); if (session != null) { session.invalidate(); mv.addObject("inscriptionMessage", "Dconnexion russie"); } else { // Ne doit pas arriver mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder cette page"); } return mv; } // Gestion des mthodes POST =================================================== // Gestion de l'inscrition @RequestMapping(value = "validation", method = RequestMethod.POST) public ModelAndView inscription(HttpServletRequest request, HttpServletResponse response) throws Exception { // Cration du modelAndView de la page de connexion ModelAndView mv = new ModelAndView("connexion"); // Rcupration des donnes String result; String nom = request.getParameter("nom"); String prenom = request.getParameter("prenom"); String login = request.getParameter("login"); String password = request.getParameter("password"); String mail = request.getParameter("mail"); String age = request.getParameter("ddn"); // Vrification de la validit des donnes if (login.isEmpty() || password.isEmpty() || mail.isEmpty() || nom.isEmpty() || prenom.isEmpty()) { // Si les champs sont mal remplis, // on raffiche la page d'inscription mv = new ModelAndView("inscription"); result = "Veuillez renseigner tous les champs..."; mv.addObject("inscriptionMessage", result); return mv; } // Calcul de l'age de la personne Integer ageInscription = null; if (age != null && age.length() != 0) { SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy"); // A faire : Vrification des paramtres. GregorianCalendar gcBirth = new GregorianCalendar(Integer.parseInt(age.split("/")[2]), Integer.parseInt(age.split("/")[1]) - 1, Integer.parseInt(age.split("/")[0])); GregorianCalendar now = new GregorianCalendar(); long diff = now.getTimeInMillis() - gcBirth.getTimeInMillis(); ageInscription = now.get(Calendar.YEAR) - gcBirth.get(Calendar.YEAR); } // Gestion des doublons if (profilService.exists(login)) { mv = new ModelAndView("inscription"); result = "Le login " + login + " existe dj! veuillez le changer"; mv.addObject("inscriptionMessage", result); return mv; } else { // Ajout de la personne inscriptionService.add(nom, prenom, login, password, mail, ageInscription); result = "Vous vous tes bien inscrit, veuillez vous connecter"; mv.addObject("inscriptionMessage", result); return mv; } } // Gestion de la connexion @RequestMapping(value = "connexion", method = RequestMethod.POST) public ModelAndView connexion(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv; // Rcupration des donnes String login = request.getParameter("login"); String password = request.getParameter("password"); // Cration de la session HttpSession session = request.getSession(true); if (session == null) { // Session non cre mv = new ModelAndView("connexion"); mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder cette page"); } else { // Attribution de l'id de l'utilisateur qui sera utilis par // le reste de l'application session.setAttribute("idUtilisateur", connexionService.connexion(login, password)); int idPersonne = (int) session.getAttribute("idUtilisateur"); // Vrification de la connexion if (idPersonne != -1) { // Connexion russie mv = new ModelAndView("redirect:/mur.htm"); } else { // Connexion refuse session.invalidate(); mv = new ModelAndView("connexion"); mv.addObject("inscriptionMessage", "Login ou mot de passe incorrect"); } } return mv; } // Gestion des mthodes mixtes================================================== }