Hvis 'navn' ikke findes returneres der ikke som mange tror en tom streng men 'null' så husk at checke for dette inden du begynder på at arbejde med den String.
disky nu ved jeg ikke hvordan du definere en tom streng men i java er en tom streng = null og det er også det du får hvis man navn ikke findes dvs. at hvis navn ikke findes...
europe: Jeg ved ikke hvor du har lært java, men det du har lært er forkert.
En tom streng er et String object der indeholder det der står imellem de efterfølgende gåseøjne "", og IKKE null.
null definere at der ikke er instantieret et objekt, når der ikke findes et objekt giver det jo ligesom ingen mening at snakke om det er tomt eller ej.
Et rigtigt godt bevis på dette er følgende:
String test=null; //ifølge dig er den jo bare tom if(test.length()==0) System.out.println("Strengen var tom");
Hvis din påstand er korrekt, skulle den skrive at strengen er tom, men du før en nullPointerException da objektet ikke findes.
disky har ret. som undtagelsen også antyder (nullPointer) så er en variabel null hvis den ikke peger på noget adresse-rum. Det vil typisk være fordi variablen er erklæret men ikke instantieret, så derfor tjekker Java kompileren for dette (variablen p may not have been instantiated). I tilfældet med request parametre forestiller jeg mig at disse parametre er læst fra inputstreamen med en PushbackInputStream (således ServletInputStream stadig er tilgengængelig) og fundne værdier er lagt ind i et java.util.Map. Et Map er et hashtable, hvilket i bund og grund blot er et adresserum hvor varible kan lagres med en tilhørende key (java.lang.String). Hvis der ikke findes en variabel i adresserummet returnerer Map (kunstpause) null. Derfor vil getParameter(key) hvor key ikke findes i vores Map give en nullPointerException (key 'peger' ikke på noget. vores variable er ikke andet en vores måde til at 'pege' på et adresserum). Jeg har lært Java på KVL (bare som reference når disky skal til at luge ud i mine misforståelser :-)
maddog: Der er skam ikke noget at luge ud i, det du siger er hvis jeg husker rigtigt helt korrekt. Gider ikke lige checke source koden for java, men det lyder rigtigt :)
dampnet: Som maddog siger, vi elsker det, og disse detaljer som at tro en tom streng er == null, er en fejl mange begår, og tro mig det skaber mange fejl.
det gør mig ikke noget jeg lave også selv mange fejl men jeg har også lært at man skal gennem teste sige ting ordenligt så ingen andre end en selv finder dem
i dette eksempel kan man f.x. også se styrken i boolean or kontra bitwise or idét boolean or ikke checker den anden værdi, hvis den første er sand. String myVal = request.getParameter("value"); if (myVal == null | myVal.equals("") { %> <span> du skal huske at skrive en værdi </span> vil give problemer, da andet led vil kaste en undtagelse selvom den første er sand. if (myVal == null || myVal.equals("") { %> vil derimod ikke checke myVal.equals("") og vi undgår at kaste en nullPointer
dampnet> fordelene ved JSP skulle allerede begynde at blive tydelig for dig. Det er en anelse mere besværligt en ASP, men kodeordet er kontrol over koden. Man har simpelthen bare lidt flere strenge på violinen og kan derfor spille flere melodier. jeg har f.x. en RequestFileHandler klasse der læser en fil (via <input type="file">), og idét at det er en klasse jeg selv har skrevet kan jeg gøre hvad f**den jeg vil med de bytes jeg har fået ind. JSP is a piece of heaven.
og manden glemmer slutparanteser i en if! min lærer ville have revet hovedet af mig og min tutor ville have spillet fodbold med dent.
Synes godt om
Ny brugerNybegynder
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.