Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-06-2006, 15:28   #1
boysna
Senior Member
 
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
Problemi Tomcat e accesso a file xml

Ciao a tutti raga.

Ho un problema. Devo creare un sito e devo controllare se la password e la login inserite dall'utente sono corrette. Per questo c'è un file xml che raccoglie le login. Ecco l'xml e il dtd:

Codice:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE root SYSTEM "account.dtd">

<root>
  <account>
  	<tipo>amministratore</tipo>
  	<login>leggero</login>
  	<password>05071983</password>	
  </account>
  
  <account>
  	<tipo>amministratore</tipo>
  	<login>FireFoxII(</login></login>
  	<password>ilfenomeno</password>
  </account>
  
  <account>
  	<tipo>utente</tipo>
  	<login>mariorossi</login>
  	<password>forzainter</password>
  </account>
  
  <account>
  	<tipo>utente</tipo>
  	<login>giovannibianchi</login>
  	<password>winter</password>
  </account>
  
  <account>
  	<tipo>utente</tipo>
  	<login>riccardoverdi</login>
  	<password>interforever</password>
  </account>
  
  <account>
  	<tipo>utente</tipo>
  	<login>marcogialli</login>
  	<password>intercapolista</password>
  </account>
  
  <account>
  	<tipo>utente</tipo>
  	<login>misterbrown</login>
  	<password>interprimasquadradimilano</password>
  </account>	

</root>
Codice:
<!ELEMENT root (account)>

<!ELEMENT account (tipo, login, password)>

<!ELEMENT tipo (amministratore|utente)>
<!ELEMENT login (#PCDATA)>
<!ELEMENT password (#PCDATA)>
Questa è la pagina dove vengono inseriti login e password:
Codice:
<html>
 <head><title>Negozio On-Line - Home Page</title>
 
 <body>
   
   Benvenuto in questo sito di Pulcinella!!!<br>          
   <form name="loginutente" ACTION="ServletLogin">
         entra come utente registrato:  <br>
         login <input type="text" name="login"></input>
         password <input type="text" name="password"></input>
         <input type="hidden" name="tipologin" value="loginutente"></input>
         <input type="submit" value="ok">          
   </form>             
      
   <form name="loginadmin" ACTION="servlet/ServletLogin">
         entra come amministratore del sito:<br>
         login <input type="text" name="login"></input>
         password <input type="text" name="password"></input>
         <input type="hidden" name="tipologin" value="loginamministratore"></input>
         <input type="submit" value="ok">         
   </form>
 
 
 </body>
</html>
La servlet controlla login e password:
Codice:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class ServletLogin extends HttpServlet {
	
	public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String tipologin = request.getParameter("tipologin");
		String login = request.getParameter("login");
		String password = request.getParameter("password");
		GestioneAccount verificaLogin = new GestioneAccount();
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html><head></head><body>login="+login+"</body></html>");
		
		if(tipologin.equals("loginamministratore")){			
		  String esitoverifica = verificaLogin.verificaAccountUtente(login, password);
		  
		  if(esitoverifica.equals(null)){
		  	                         gotoPage("/areaAmministratore.jsp",request,response);
		                           }
		  else {
		  	    request.setAttribute("erroreLogin", response);
		  	    gotoPage("/index.jsp",request,response);
		  }
		}
    
		
	} 

	private void gotoPage( String address, 
			   			   HttpServletRequest request, 
			   			   HttpServletResponse response)
			throws ServletException, IOException {
		RequestDispatcher dispatcher = 
			getServletContext().getRequestDispatcher(address);
		dispatcher.forward(request,response);
	} 
}
La classe GestioneAccount che vedete nella servlet è questa, serve ad accedere al file Xml tramite DOM:
Codice:
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import org.xml.sax.SAXException;
import javax.servlet.*;


public class GestioneAccount{

	public Document document;
	/*public String account = System.getProperty("user.dir") + "\\" + "account.xml";*/
	public String account = "E:\\Programmi\\Apache Software Foundation\\Tomcat 5.5\\webapps\\progetto\\WEB-INF\\classes\\account.xml";

	//Costruttore
	public GestioneAccount(){
		try{
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			factory.setValidating(true);
			DocumentBuilder builder = factory.newDocumentBuilder();

			//Creao un Node che si riferisce al file "account.xml"
			document = builder.parse(new File(account));
			builder.setErrorHandler(new MyErrorHandler());
			

		}
		catch(ParserConfigurationException e){}
		catch(SAXException r){r.printStackTrace();}
		catch(FileNotFoundException me){}
		catch(IOException t){}}


	//Metodi
	public String verificaAccountUtente(String loginInput, String passwordInput){

		Element root = document.getDocumentElement();
		String response="Login amministratore non valido";

	    NodeList login = root.getElementsByTagName("login");
	    NodeList password = root.getElementsByTagName("password");
	    NodeList tipi = root.getElementsByTagName("tipo");

	    for(int i=0; i<login.getLength() && response.equals("Login amministratore non valido"); i++) {
	    	  if(login.item(i).getTextContent().equals(loginInput)){
	    	 	     if(tipi.item(i).getTextContent().equals("amministratore")){
	    		           if (password.item(i).getTextContent().equals(passwordInput)) { 
	    		                          response=null;}
	    		           else { response="Password sbagliata";
	    		           }
	                 }
	                 else{response="Non sei un amministratore e non puoi entrare";	}
	           }
	    	
	    }
	    return response;
	    }
	    
	}
Purtroppo mi da questo errore Tomcat:

Codice:
exception 

java.lang.NullPointerException
	GestioneAccount.verificaAccountUtente(GestioneAccount.java:36)
	ServletLogin.doGet(ServletLogin.java:20)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	filters.ExampleFilter.doFilter(ExampleFilter.java:102)
Se mi aiutate mi fate un grande piacere. Ciao a tutti.
boysna è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2006, 23:19   #2
boysna
Senior Member
 
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
up
boysna è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
All'interno della capsula Starfall di Sp...
8BitDo Arcade Controller Pro è il...
Dead or Alive 6 Last Round: una chiusura...
DXC e Anthropic insieme per portare l'IA...
Lenovo presenta nuove soluzioni per l'IA...
OVHcloud potenzia la Quantum Platform: i...
Octopus Energy lancia Nook, la sua gamma...
IBM presenta il primo chip al mondo sott...
Qualcomm Dragonfly debutta nel settore d...
Scopa elettrica Proscenic P11 Ultra+ a 8...
Napoli capitale italiana del calcolo qua...
Emma avrebbe dovuto contribuire alla sov...
Tesco abbandonerà VMware e migrer...
Driver AMD rotti su Windows 10? Rilascia...
Il salto quantistico del 2025 di Microso...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v