brigate/src/servlet/UtenteServlet.java

109 lines
3.4 KiB
Java

package servlet;
import java.io.IOException;
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 javax.servlet.http.HttpSession;
import bean.Utente;
import service.UtenteService;
/**
* Servlet implementation class ServletUtente
*/
@WebServlet("/utente-servlet")
public class UtenteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Leggo il parametro azione
String azione = request.getParameter("azione");
// Registrazione
if (azione.equals("registrazione")) {
// Leggo i parametri nickname, nome, cognome, email, numero, password
String nickname = request.getParameter("nickname");
String password = request.getParameter("password");
// Invoco il metodo registrazione
boolean ok = UtenteService.registrazione(nickname, password, "utente");
// Se tutto ok, inviare con un messaggio di conferma la risposta a login.jsp
if (ok) {
String messaggio = "Registrazione effettuata, ora procedi con la login";
request.setAttribute("messaggio", messaggio);
request.getRequestDispatcher("index.jsp").forward(request, response);
} else { // Altrimenti, inviare con un messaggio di errore la risposta a
// registrazione.jsp
String messaggio = "Registrazione fallita, il nickname non è disponinibile, ritenta";
request.setAttribute("messaggio", messaggio);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
} else if (azione.equals("login")) { // Login
// Leggo i parametri nickname e password
String nickname = request.getParameter("nickname");
String password = request.getParameter("password");
// Chiamo il metodo login
Utente loggato = UtenteService.login(nickname, password);
// Se tutto ok, link a index.jsp
if (loggato != null) {
//Ottengo l'oggetto Session
HttpSession sessione = request.getSession(false);
//Setto come attributo di sessione l'utente e la sua lista dei preferiti vuota
if(sessione != null) {
sessione.setAttribute("utente", loggato);
}
if(loggato.getRuolo().equals("utente")) {
response.sendRedirect("cerca-aggiungi.jsp");
}else {
response.sendRedirect("elenco-ordini.jsp");
}
} else {// Altrimenti, link a login.jsp con un messaggio di errore
String messaggio = "Login fallita, ritenta";
request.setAttribute("messaggio", messaggio);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}else if(azione.equals("logout")) { //Logout
//Chiudo la sessione
HttpSession sessione = request.getSession(false);
if(sessione != null) {
sessione.invalidate();
}
//Link alla login.jsp
response.sendRedirect("index.jsp");
}
}
}