Salve a tutti, ho un piccolo dilemma. Devo creare una servlet "Profilo" che:
nel caso l'utente non sia loggato debba mostrare un messaggio di errore, in caso contrario deve mostrare un form per la modifica dei dati dell'utente. Ho gi� fatto la servlet per il login, tuttavia non riesco nella creazione della servlet profilo, nel caso pi� specifico la parte del messaggio di accesso negato. Di seguito il codice gi� fatto:
codice:// Servlet login @WebServlet (name="Login", urlPatterns = {"/login.html"}) public class Login extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); if (request.getParameter("Submit")!= null){ String username = request.getParameter("username"); String password = request.getParameter("psw"); ArrayList<Iscritto> listaIscritti = IscrittoFactory.getInstance().getIscrittoList(); for (Iscritto i : listaIscritti){ if(i.getUsername().equals(username) && i.getPsw().equals(password)){ HttpSession session = request.getSession(true); session.setAttribute("iscritto", i); if (i instanceof Iscritto){ } if (i.getNome().equals("") || i.getCognome().equals("") || i.getFrase().equals("") || i.getNascita().equals("")){ request.setAttribute("iscritto", i); request.getRequestDispatcher("profilo.jsp").forward(request, response); } else{ request.setAttribute("iscritto", i); request.getRequestDispatcher("bacheca.jsp").forward(request, response); } } } for (Iscritto i2 : listaIscritti){ if (!i2.getUsername().equals(username) || !i2.getPsw().equals(password)) { request.setAttribute("errore", "credenziali di accesso errate"); request.getRequestDispatcher("login.jsp").forward(request, response); } } } request.getRequestDispatcher("login.jsp").forward(request, response); //pagina login.jsp <!DOCTYPE html> <html> <head> ... </head> <body> <div class="contenitore"> <nav class="navbar"> <ul class="nav_bar"> <li id="head"><a href="descrizione.jsp">Sito</a></li> <li><a href="descrizione.jsp">Descrizione</a></li> <li><a href="profilo.jsp">Profilo</a></li> <li><a href="bacheca.jsp">Bacheca</a></li> </ul> </nav> <br> <div class="log_in"> <img id="utente" alt="profile" src="imm.jpg"> <h2 id="titolo_form">Login a Sito</h2> </div> <div class="form_box_login"> <form action="Login" method="post"> <br> <label for="username">Username</label> <input type="text" name="username" id="username" placeholder="Inserisci Username" required/> <br> <label for="psw">Password</label> <input type="text" name="psw" id="psw" placeholder="Inserisci Password" required/> <br> <button class="conferma" name="Submit" type="submit">Login</button> <button class="cancella" type="reset">Cancella Campi</button> <label for="errore"> <c:if test="${!empty errore}"> <c:out value="${errore}"/> </c:if> </label> </form> </div> </div> <jsp:include page="footer.jsp" /> </body> </html> //profilo.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> ... </head> <body> <div class="contenitore"> <nav class="navbar"> <ul class="nav_bar"> <li id="head"><a href="#sito">Sito</a></li> <li><a href="descrizione.jsp">Descrizione</a></li> <li><a href="login.jsp">Login</a></li> </ul> <ul id="nav_user"> <li><h3>${iscritto.username}</h3></li> <li><a href="#logout">Logout</a></li> </ul> </nav> <div id="profile"> <jsp:include page="sidebar.jsp" /> <br> <div class="box_profilo"> <div class="sign_in"> <img id="utente2" alt="immagine del profilo" src="Immagini/utenti.png"> </div> <c:if test="${!empty accesso}"> <c:out value="${accesso}"/> </c:if> <div class="form_box"> <form class="form_signin" action="Profilo" method="post"> <label for="nome">Nome</label> <input type="text" id="nome" name="nome" value="${iscritto.nome}" required> <br> <label for="cognome">Cognome</label> <input type="text" id="cognome" name="cognome" value="${iscritto.cognome}" required> <br> <label for="url_img">Indirizzo immagine profilo</label> <input type="url" id="url_img" name="url_img" value="${iscritto.urlImmProfilo}" placeholder="Inserisci url" required> <br> <label for="frase">Frase di Presentazione</label> <textarea rows="7" cols="20" id="frase" name="frase" value="${iscritto.frase}" placeholder="Inserisci frase" required></textarea> <br> <label for="data">Data di Nascita</label> <!--lo strumento di validazione mi da un warning, in quanto il tipo di input "date" non � supportato da tutti i browser --> <input type="date" id="data" name="01/01/1990" value="${iscritto.nascita}" required> <br> <label for="username">Username</label> <input type="text" id="username" name="username" value="${iscritto.username}" required> <br> <label for="psw">Password</label> <input type="password" id="psw" name="psw" value="oscurato" placeholder="Inserisci password" required> <br> <label for="c_psw">Conferma Password</label> <input type="password" id="c_psw" name="c_psw" value="oscurato" placeholder="Conferma password" required> <br> <button id="conferma" type="submit" name="conferma">Aggiorna</button> <button id="cancella" type="reset" name="cancella">Cancella Campi</button> </form> </div> </div> </div> </div> <jsp:include page="footer.jsp" /> </body> </html> //Servlet Profilo @WebServlet (name="Profilo", urlPatterns = {"/profilo.html"}) public class Profilo extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); HttpSession session = request.getSession(false); Iscritto utente = (Iscritto)session.getAttribute("iscritto"); request.setAttribute("avviso", "accesso negato"); if (utente != null){ request.getRequestDispatcher("profilo.jsp").forward(request, response); } if (utente == null){ session.setAttribute("iscritto", false); request.getRequestDispatcher("login.jsp").forward(request, response); } Iscritto iscritto = new Iscritto(); if (request.getParameter("conferma") != null){ String username = request.getParameter("username"); String password = request.getParameter("psw"); String c_password = request.getParameter("c_psw"); String nome = request.getParameter("nome"); String cognome = request.getParameter("cognome"); String urlImmProfilo = request.getParameter("url_img"); String nascita = request.getParameter("data"); String frase = request.getParameter("frase"); String user = request.getParameter(nome); int userId; if (user != null){ userId = Integer.parseInt(user); } iscritto.setNome(nome); iscritto.setCognome(cognome); iscritto.setUrlImmProfilo(urlImmProfilo); iscritto.setFrase(frase); iscritto.setNascita(nascita); iscritto.setUsername(username); if (password.equals(c_password)){ iscritto.setPsw(password); iscritto.setC_Psw(c_password); } else { request.getRequestDispatcher("profilo.jsp").forward(request, response); } request.getRequestDispatcher("bacheca.jsp").forward(request, response); } }
So che il testo � molto lungo ma volevo essere il pi� preciso possibile. Vi ringrazio in anticipo per qualsiasi consiglio possiate darmi.

Rispondi quotando