Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Form di Login con Ajax e Servlet

    Buongiorno a tutti,premetto che ho cominciato veramente da poco ad utilizzare Ajax. Passo a descrivere quale è il mio problema: ho un form (banale e statico) dal quale invocavo una servlet e a cui passavo le valorizzazioni degli input fatte dall'utente. Adesso vorrei un pò spostarmi con le conoscenze ed applicare a tutto questo il framework Ajax. A tal proposito ho provato a fare qualcosa del genere:Pagina del form:
    codice:
    Form d'inserimento username e passwordForm Inserimento Username / Password    Inserisci il tuo username:             
    Inserisci la tua password:     
    Accedi comeUtenteAmministratore
    E per completezza la Servlet è (in logica vecchio form):
    codice:
    package servlet;import dataAccessObject.*;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.GregorianCalendar;import javax.servlet.ServletException;import javax.servlet.ServletRequest;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 dbmUtility.*;import entity.*;/** * Servlet implementation class UserController */@WebServlet(urlPatterns = { "/UserController" })public class UserController extends HttpServlet {	private static final long serialVersionUID = 1L;		/**	 * @see HttpServlet#HttpServlet()	 */	public UserController() {		super();	}	/**	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse	 *      response)	 */	protected void doGet(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException {		// TODO Auto-generated method stub		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 {		HttpSession session = request.getSession(true);		try {			// Recupero i campi del form			String username = request.getParameter("username");			String password = request.getParameter("password");			int roletype = Integer.parseInt(request.getParameter("usertype"));			// Se sono stati compilati tutti i campi			if (username.equals("") || password.equals("")) {				// Reinderizzo alla pagina di mancata compilazione di tutti i				// campi				this.getServletContext().getRequestDispatcher("/loginErrorCampiVuoti.jsp").forward(request, response);				return;			}			// Pagina Amministratore			if (username.equals("admin") && (password.equals("admin")) && (roletype == 1)) {				session.setAttribute("admin", "admin");				this.getServletContext().getRequestDispatcher("/adminIndex.jsp").forward(request, response);				return;			}			if ((!username.equals("")) && (!password.equals(""))) {				UserDao dao= new UserDao();				//Mi faccio tornare il ruolo dell'Utente				int ruolo=dao.getUserRoleByUsernamePassword(username, password,roletype);								if (ruolo==0) {										String id =dao.getUserIdByUsernamePassword(username, password);					if(dao.getDeletedByUsernamePassword(username, password, ruolo)==1){						this.getServletContext().getRequestDispatcher("/userDeletedNoAccess.jsp").forward(request, response);						return;					}					else					//Setto la sessione dell'Utente calcolando il suo orario di accesso					session.setAttribute("utente", id);					GregorianCalendar data=new GregorianCalendar();					SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");					String accesso =sdf.format( data.getTime());					dao.setUltimoAccessoUser(id, accesso );					this.getServletContext().getRequestDispatcher("/userIndex.jsp").forward(request, response);					return;				}				if (ruolo==1) {											this.getServletContext().getRequestDispatcher("/adminIndex.jsp").forward(request, response);					return;				}				else {					this.getServletContext().getRequestDispatcher("/loginErrorNessunUtente.jsp").forward(request,							response);					return;				}			}		} catch (Exception e) {			e.printStackTrace();			this.getServletContext().getRequestDispatcher("/error.jsp").forward(request,					response);			return;		}	}}
    Quello che vorrei fare (in parte pensavo di averlo fatto con il codice inserito nella pagina d'inserimento) è: una volta che l'utente immette i dovuti campi e sceglie il ruolo (in precedenza tali credenziali, compreso il ruolo, sono state decise da un admin superiore) avere per intanto un messaggio di corretto/incorretto login. Dopo avere: nel primo caso un dispatcher alla pagina dell'utenza con messaggio di OK, nel secondo caso avere solo un messaggio di errore.Provando il codice postato la visualizzazione è ferma alla pagina d'inserimento (la prima). Prima, caso di form statico (senza ajax), ovviamente il tutto funzionava. So che la Servlet non dovrebbe più contenere i vari dispatcher alle pagine di messaggi di corretto/incorretto login, ma come posso fare? O dove sto sbagliando?Grazie a chi si interesserà!

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    sbagli che non hai studiato prima di mettere mano al codice.

    per fare quello che chiedi ti servono due cose semplici

    come fare una chiamata Ajax
    come effettuare redirect con js


    in ambo i casi puoi scegliere se farli con jQuery o in javascript puro (sconsigliato)

    aggiungo inoltre che il forum non funziona come "tutorial" . Studi, provi a fare la chiamata e se non funziona chiedi qui il perché.

    infine Ajax non è un framework ma una tecnologia

    https://it.wikipedia.org/wiki/AJAX
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    perché apri due volte la stessa discussione non avevo visto
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.