Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 08:32 Der er 16 kommentarer og
1 løsning

Servlet. Hvad returnerers der i en form hvis feltet er tomt?????????

Hvad er det jeg gør galt. Jeg har en HTML-form som poster værdier til denne her servlet. Det jeg ikke kan finde ud af er hvad den sender hvis et felt er tomt?. Jeg har prøvet med en tom streng og med null, og jeg har prøvet at skrive værdien ud i konsollen. Hvorfor virker det ikke??


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;

public class Tilfoj extends HttpServlet
{
        public void doPost (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
           
            response.setContentType(\"text/html\");
           
            String navn = request.getParameter (\"navn\");   
           
            if(navn==null)
            {
                navn=\"anonym\";
            }
           
            System.out.print(navn);
           
            String besked = request.getParameter (\"besked\");
   
            Databaseforbindelse d = new Databaseforbindelse(\"sun.jdbc.odbc.JdbcOdbcDriver\",\"jdbc:odbc:mik\");
       
            //Mysqlforbindelse d = new Mysqlforbindelse(\"jdbc:mysql://192.168.1.11/gaestebog?user=mik&password=mik\",
            //                                            \"org.gjt.mm.mysql.Driver\");
       
        d.insertUpdate(\"INSERT INTO besked (navn,besked) VALUES (\'\"+navn+\"\',\'\"+besked+\"\')\");
        d.close();   
       
        try
        {
            Thread.sleep(1000);
        } catch (InterruptedException e){}
                   
        Properties props = System.getProperties();
       
        props.put(\"mail.smtp.host\",\"smtp.mail.dk\");
        Session session = Session.getInstance(props, null);
     
        try
        {
       
        Message m = new MimeMessage(session);
        m.setSubject(\"gaestebog\");
        m.setText(\"Besked fra: \"+navn);       
       
        Address address = new InternetAddress(\"mikbis1@mail.dk\", navn);
        m.setFrom(address);
        Address toAddress = new InternetAddress(\"mikbis1@mail.dk\");
        m.addRecipient(Message.RecipientType.TO, toAddress);
       
        Transport trans = session.getTransport(\"smtp\");
        trans.send(m);
       
        }
       
        catch (MessagingException e)
        {
            System.out.println(\"MessagingException\");
        }

//        catch (AddressException e){}
//        catch (NoSuchProviderException e){}
       
       
        response.sendRedirect(\"http://mikmak.dyndns.dk:8080/mik/index/opslag.htm\");
   
     
        }
       
}
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 08:34 #1
formen ser således ud

<html>
<head>
<base target=\"content\">
</head>
<body bgcolor=\"#555555\">

<form method=\'post\' name=\'form\' action=\'http://mikmak.dyndns.dk:8080/mik/servlet/Tilfoj\'>
Besked fra
<input type=\'text\' name=\'navn\'><br>
<textarea name=\'besked\' cols=\'40\' rows=\'4\'></textarea><br>

<input type=\'submit\' name=\'Send\' value=\'Send\'>
<input type=\'reset\' value=\'Nulstil\'
</form>


<body><html>
Avatar billede lbhansen Nybegynder
19. oktober 2001 - 09:15 #2
Så kan jeg så afsløre at den er null.
prøv at lave den her:
if(request.getParameter(\"besked\")==null)
  System.out.println(\"den er tom\");
else
  System.out.println(request.getParameter(\"besked\"));
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:26 #3
Det virker heller ikke
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:27 #4
Den er altså ikke null. Jeg ville ønske den var
Avatar billede lbhansen Nybegynder
19. oktober 2001 - 09:29 #5
hvad skriver den så ud?
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:30 #6
ikke noget
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:30 #7
har du terminal services
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:31 #8
det begynder at pisse mig af *LOL*
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:31 #9
Det er jo kode på et meget lavt niveau
Avatar billede erikjacobsen Ekspert
19. oktober 2001 - 09:32 #10
Den bør nu være den tomme streng. Altså

f(request.getParameter(\"besked\").equals(\"\"))
                    System.out.println(\"den er tom\");
                  else
                    System.out.println(request.getParameter(\"besked\"));

Den er null, hvis navnet slet ikke står i formen
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:34 #11
er det ikke det samme som at skrive if(besked==\"\")
Avatar billede erikjacobsen Ekspert
19. oktober 2001 - 09:35 #12
nej, mik
Avatar billede lbhansen Nybegynder
19. oktober 2001 - 09:36 #13
næsten den øverse linje i eriks forslag vil
dog give en nullpointerexception hvis besked er null
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:37 #14
det virkede. JUBIIIIIIIIII
Avatar billede mikmakmuk Nybegynder
19. oktober 2001 - 09:38 #15
Jeg siger tak igen.
Avatar billede erikjacobsen Ekspert
19. oktober 2001 - 09:40 #16
Jo, men, lbhansen, besked kan ikke være null hvis den står i formen.
Hvis servletten (.jsp-filen) kaldes uden formen og uden querystring, ja, så
er den null. Skal vi forbedre den, så kan vi

if(request.getParameter(\"besked\")==null || request.getParameter(\"besked\").equals(\"\"))
  System.out.println(\"den er tom\");
else
  System.out.println(request.getParameter(\"besked\"));

Avatar billede lbhansen Nybegynder
19. oktober 2001 - 09:47 #17
se så snakker vi:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester