Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
SpaceX mostra nuove immagini del lancio ...
Cina: CAS Space e Guangzhou Laboratory e...
Nikon Comedy Wildlife Awards 2026: le fo...
Samsung Galaxy A57 e A37 costano di più ...
Windows 11 26H2 taglia il consumo di RAM...
KINGPIN è tornato! Il re dell'ove...
CPU usata, ban ereditato: il caso del Ry...
Spunta un engineering sample di Ryzen 9 ...
iPhone 18 Pro, alcuni utenti segnalano s...
Android Auto: Gemini ascolta la domanda ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
Sudo sembra un iPod, ma nasconde una car...
Meta, OpenAI e Google rifanno OpenClaw: ...
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: 03:41.


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