Avatar billede dampnet Nybegynder
13. august 2002 - 15:50 Der er 20 kommentarer og
1 løsning

QueryString ??

Jeg vil gerne have et lille eks. på hvordan man anvender querystring i jsp.

Bare en side der lige sende en string med url'en også en side som aflæse den fra url'en. sikkert meget simpelt men jeg kan ikke lige finde det.

dampnet :)
Avatar billede Slettet bruger
13. august 2002 - 15:54 #1
Siden der linker:

<a href="jspfil.asp?navn=test">klik her</a>

jspfil.asp

String navn = request.getParameter("navn")

Du bruger altså request.getParameter() til at hente fra QueryString i JSP.


/Martin Sommer
www.magik.dk
Avatar billede medions Nybegynder
13. august 2002 - 15:55 #2
Det gør du ved:
String strQueryString = request.getParameter("land");´

//>Rune
Avatar billede europe Nybegynder
13. august 2002 - 15:57 #3
Det kan gøres med
request.getParameter("name");

hvor "name" er navnet på den attribute som strengen ligger i fuldt eksemple (øh næsten)  er

Første side:
<a href="hej.html?username='Brian'">tryk her</a>

I hej.html:
<%
String userName = request.getParameter("username");
out.println(userName);
%>

Prøv det !!!!
Avatar billede europe Nybegynder
13. august 2002 - 15:58 #4
Har du flere values bruges

String userName[] = request.getParameterValues("username")
Avatar billede dampnet Nybegynder
13. august 2002 - 16:04 #5
magik lav lige et svar!!
Avatar billede Slettet bruger
13. august 2002 - 16:05 #6
et svar ;)
Avatar billede disky Nybegynder
13. august 2002 - 16:15 #7
magik's løsning er korrekt.

men han glmemr en meget vigtig detalje.

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.
Avatar billede europe Nybegynder
13. august 2002 - 16:28 #8
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...

String navn = request.getParameter("navn");

så er navn = null;
Avatar billede disky Nybegynder
13. august 2002 - 16:56 #9
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.
Avatar billede =maddog= Nybegynder
13. august 2002 - 17:46 #10
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 :-)
Avatar billede =maddog= Nybegynder
13. august 2002 - 17:48 #11
tilgengængelig LOL. det har været en lang og ikke helt let dag på kontoret. tilgængelig
Avatar billede =maddog= Nybegynder
13. august 2002 - 17:52 #12
ved en lille søgning i javadoc API for Servlet 2.3 kan man finde at
ServletRequest.getParameterMap() returnerer et java.util.Map med alle parametrene. Der kan man bare se :-)
http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletRequest.html#getParameterMap()
Avatar billede dampnet Nybegynder
13. august 2002 - 18:09 #13
dette var da en utrolig diskusion i kunne få ud af det lille spm :)
Avatar billede =maddog= Nybegynder
13. august 2002 - 18:10 #14
ups. første fejl. key er ikke nødvendigvis en java.lang.String men kan være et hvilket som helst Object der ikke er null.
Avatar billede =maddog= Nybegynder
13. august 2002 - 18:10 #15
dampnet> vi ÆÆÆÆÆÆLSKER det :D
Avatar billede dampnet Nybegynder
13. august 2002 - 18:14 #16
hehe
Avatar billede disky Nybegynder
13. august 2002 - 18:30 #17
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.
Avatar billede dampnet Nybegynder
13. august 2002 - 18:33 #18
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
Avatar billede disky Nybegynder
13. august 2002 - 18:48 #19
det har du bestemt ret i
Avatar billede =maddog= Nybegynder
13. august 2002 - 20:05 #20
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.
Avatar billede =maddog= Nybegynder
13. august 2002 - 20:07 #21
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.
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