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

    Servlet non funzionante

    HO un problema con una servlet ,che ho copiato da un corso , però non funziona ecco la jsp:

    codice:
    <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
    <%@ page import="java.util.Date" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Data odierna</title>
    </head>
    <body>
    <% Date data= new Date(); %>
    
    <h1>La data di oggi è : <%=data.toLocaleString() %></h1>
    
    <form action="HelloRequest" method ="post">
    
    Nome: <input type="text" name="nome"></br>
    Cognome: <input type="text" name="nome"></br>
     <input type="submit" value="invia">
     </form>
    
    </body>
    </body>
    </html>
    e la servlet
    codice:
    	package Esempio;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class HelloRequest
     */
    @WebServlet("/HelloRequest")
    public class HelloRequest extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public HelloRequest() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doPost(request,response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html;charset=UTF-8");
    		PrintWriter out=response.getWriter();
    		String nome =request.getParameter("nome").toString();
    		String cognome =request.getParameter("cognome").toString();
    		out.println("<html>");
    		out.println("<head>");
    		out.println("<title>Primo esempio Servlet");
    		out.println("</title>");
    		out.println("<body>");
    		
    		out.println("Benvenuto "+nome+" "+cognome+"");
    
    		out.println("</body>");
    		out.println("</html>");
    
    	}
    
    }
    La jsp funziona ma quando inserisco i dati e clicco su invia ho:

    codice:
    mag 11, 2013 7:33:20 PM org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
    mag 11, 2013 7:33:20 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Sito' did not find a matching property.
    mag 11, 2013 7:33:20 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Web1' did not find a matching property.
    mag 11, 2013 7:33:20 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:CorsoDoc' did not find a matching property.
    mag 11, 2013 7:33:20 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8081"]
    mag 11, 2013 7:33:20 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    mag 11, 2013 7:33:20 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1459 ms
    mag 11, 2013 7:33:20 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    mag 11, 2013 7:33:20 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.39
    mag 11, 2013 7:33:25 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8081"]
    mag 11, 2013 7:33:25 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    mag 11, 2013 7:33:25 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 4469 ms
    mag 11, 2013 7:33:36 PM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet [Esempio.HelloRequest] in context with path [/CorsoDoc] threw exception
    java.lang.NullPointerException
    	at Esempio.HelloRequest.doPost(HelloRequest.java:41)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:722)

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    La riga 41 segnalata nell'eccezione è

    codice:
    String cognome = request.getParameter("cognome").toString();
    giusto?

    Il problema è che non c'è il parametro "cognome". getParameter restitusce quindi null e di conseguenza la chiamata a toString() genera la NullPointerException. E se guardi bene la form html scoprirai il perché:

    codice:
    <form action="HelloRequest" method ="post">
    
    Nome: <input type="text" name="nome"></br>
    Cognome: <input type="text" name="nome"></br> <----
    
    <input type="submit" value="invia">
    </form>
    Inoltre quelle chiamate a toString() non servono perché getParameter restituisce già una stringa



    Un suggerimento.
    Quando chiami metodi su oggetti che ti arrivano "da fuori" assicurati che tali oggetti siano validi. Nel tuo codice se non passi nome o cognome la servlet crasha brutalmente.

    Prendiamo questa riga ad esempio:

    codice:
    String username = request.getParameter("username").toLowerCase();
    Se nella http request non viene passato il pezzo &username=pippo l'applicazione da NullPointerException e muore. Prova a fare una cosa del genere invece:

    codice:
    ....
    String username = request.getParameter("username");
    if (username == null) {
       out.println("Lo username &egrave; obbligatorio!");
    } else {
       username = username.toLowerCase(); 
    }
    ...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Grazie mille ora funziona ,è stato un problema di ctrl+v.Ed io mi ero fossilizzato sul fatto che eclipse non crea il file xml come nel visìdeocorso.
    Ma l'xml è obbligatorio?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quale xml? Di che videocorso stai parlando?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Ah, il web.xml! Avrei dovuto immaginare, non ci ho pensato

    Nì: http://www.coderanch.com/t/580077/Se...cation-web-xml

    Leggi anche qui, vedi se ti è utile
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Scusa se esagero hai qualcosa anche in italiano , che capisco meglio?

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da pippuccio76
    Scusa se esagero hai qualcosa anche in italiano , che capisco meglio?
    Purtroppo si trova poca roba in italiano (e spesso sono semplice traduzioni di dubbia qualità). Cosa non capisci in particolare?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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 © 2025 vBulletin Solutions, Inc. All rights reserved.