/ Forside/ Teknologi / Udvikling / Java / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
HTTP POST fra en JSP-side
Fra : kikki
Vist : 995 gange
50 point
Dato : 16-02-01 11:18

Hej,
er der mon nogen som kan hjælpe mig med følgende problem:
Jeg skal fra en jsp-side sende en HTTP POST til en anden server med angivelse af
en forms felter og værdier. Svaret skal siden hen vises på (samme) side(n).
Hvordan kan det gøres i JSP ?

/Christina

 
 
Kommentar
Fra : kikki


Dato : 16-02-01 11:42

Mit problem er at jeg ikke må/kan sende felter i selve urlen.
Har du andre ideer ?

/Christina

Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 11:53


"kikki" <kikki.news@kandu.dk> wrote in message
news:p77j6.71712$zw.1260946@twister.sunsite.dk...
> Hej,
> er der mon nogen som kan hjælpe mig med følgende problem:
> Jeg skal fra en jsp-side sende en HTTP POST til en anden server med
angivelse af
> en forms felter og værdier. Svaret skal siden hen vises på (samme)
side(n).
> Hvordan kan det gøres i JSP ?

<form action="POST"
methode="http://www.andenserver.hos.dig/sidenDerSkalBrugeData.html>
alle dine felter
</form>

det er bare standard HTML du skal bruge,

Husk jsp er java kode puttet ind i en HTML side.

>
> /Christina
>
>
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Accepteret svar
Fra : soeren

Modtaget 60 point
Dato : 16-02-01 12:23

Her er ved nærmere eftertanlke et eksempel der åbner en URL med POST.

URL url = new URL("http://www.andenserver.dk");
URLConnection conn = url.openConnection();
HttpURLConnection h = (HttpURLConnection) conn;
h.setRequestMethod("POST");
h.setRequestProperty("Felt du vil sende med","værdi du vil sende med");

DataInputStream buf = new DataInputStream(h.getInputStream());

String str="";
while ( (str=buf.readLine()) != null ) {
   /*Send output via <%= %> til side */

}

Men husk lige tags'ne rundt, eller pak det ind i en bean.

NB: readLine er godt nok deprecated, så anvend evt. en anden Stream.

/Søren

Kommentar
Fra : kikki


Dato : 16-02-01 12:32

Jeg er ikke enig i at jsp er javakode puttet i en HTML side,
det er derimod en java kode som afvikles på server side,
og som kan genererer HTML scrip (hvilket vil gør det muligt for web-browser at præsentere dette),
men det kan i princippet gør alt muligt andet. Det er nemlig på
serveren at JSP afvikles, og det, som bekendt, har intet med HTML at gøre )

Situationen er at min JSP side rammes af en HTTP POST ( fra en anden side med en form i lighed med det du skriver) jeg skal så på baggrund af forskellige felter afgøre hvor dette request skal videresendes, og så skal jeg gør det, tage imod resultatet (HTML formentlig, men måske også XML) og præsentere det for request browseren.

Dette skal gøres uden at det skal involvere nogen servlet etc.

/Christina



Godkendelse af svar
Fra : kikki


Dato : 16-02-01 12:42

Jeg er ikke så sikker på at det cast til HttpURLConnection vil virke,
men ideen er helt klart anvendeligt.
Tak for hjælpen

/Christina
                        

Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 12:48



kikki wrote:

> Jeg er ikke enig i at jsp er javakode puttet i en HTML side,
> det er derimod en java kode som afvikles på server side,
> og som kan genererer HTML scrip (hvilket vil gør det muligt for web-browser at præsentere dette),
> men det kan i princippet gør alt muligt andet. Det er nemlig på
> serveren at JSP afvikles, og det, som bekendt, har intet med HTML at gøre )
>
> Situationen er at min JSP side rammes af en HTTP POST ( fra en anden side med en form i lighed med det du skriver) jeg skal så på baggrund af forskellige felter afgøre hvor dette request skal videresendes, og så skal jeg gør det, tage imod resultatet (HTML formentlig, men måske også XML) og præsentere det for request browseren.

Det lyder som om du egentlig vil forwarde browseren til en anden side.
Hvis det som browseren skal se er tilgængligt udefra kan du bruge
response.sendRedirect(). Inden headeren er comitted.

Hvis ikke det er tilgængligt udefra, skal du alt efter hvor det ønskede
indhold kan skaffes fra, hente det i java kode. DU kan så sætte
ContentType for dit response inden du hælder data ud i det.

Var det hvad du ville?




-dennis


Kommentar
Fra : soeren


Dato : 16-02-01 13:07

Casten virker

jeg har prøvet det

/Søren

Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 12:57


"Dennis Thrysøe" <qabi@qabi.dk> wrote in message
news:3A8D1362.2050000@qabi.dk...
>
>
> kikki wrote:
>
> > Jeg er ikke enig i at jsp er javakode puttet i en HTML side,
> > det er derimod en java kode som afvikles på server side,
> > og som kan genererer HTML scrip (hvilket vil gør det muligt for
web-browser at præsentere dette),
> > men det kan i princippet gør alt muligt andet. Det er nemlig på
> > serveren at JSP afvikles, og det, som bekendt, har intet med HTML at
gøre )

Din JSP side er stadigvæk normalt en standard HTML side, hvori du har lagt
Java code ind, denne jsp side bliver så første gang den bliver accesset
konverteret om til en Java servlet, og den spytter så html koden ud. Det er
ligesom det der er hele fidussen

> >
> > Situationen er at min JSP side rammes af en HTTP POST ( fra en anden
side med en form i lighed med det du skriver) jeg skal så på baggrund af
forskellige felter afgøre hvor dette request skal videresendes, og så skal
jeg gør det, tage imod resultatet (HTML formentlig, men måske også XML) og
præsentere det for request browseren.

Du kan altid ud fra request objectet se hvilke parameter der er blevet sendt
med, og du kan så ud fra dem tage din beslutning, og bruge
response.sendRedirect() til at sende folk videre.

Men skal det være rigtig pæn kode, gemmer du disse beslutninger i en Java
bean, for at opnå stor adskillelse imellem design og program ! Et eller
andet design pattern beskriver dette men jeg kan ikke huske navnet.

Hele ideen ved JSP er jo netop denne adskillelse, så en designer laver HTML
siden, og du fortæller dem så nogle små stumper kode de skal sætte ind hvis
de skal have data fra f.eks. en database.

f.eks.

<input name="navn" value="<% bean.getName()%>">

osv.

Hvis du begynder at smide alt mulig java kode i din jsp side, kan du ikke
nemt portere siden til andre systemmer f.eks. wap.

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish





Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 13:08



Soren 'Disky' Reinke wrote:

> Men skal det være rigtig pæn kode, gemmer du disse beslutninger i en Java
> bean, for at opnå stor adskillelse imellem design og program !

Men endnu bedre (i nogle situationer): Tag libraries. Hjemmelavede tags
der løser nogle opgaver. For web-designeren, der ikke kender meget til
Java ser det ud som en udvidelse af HTML med evt. forretningslogik.

-dennis



Kommentar
Fra : kikki


Dato : 16-02-01 13:38

> Men endnu bedre (i nogle situationer): Tag libraries. Hjemmelavede tags
> der løser nogle opgaver. For web-designeren, der ikke kender meget til
> Java ser det ud som en udvidelse af HTML med evt. forretningslogik.

Har du et eksempel på det, det lyder som noget jeg kunne lære noget af

/Christina

Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 14:07


"kikki" <kikki.news@kandu.dk> wrote in message
news:Ma9j6.71963$zw.1276367@twister.sunsite.dk...
> > Men endnu bedre (i nogle situationer): Tag libraries. Hjemmelavede tags
> > der løser nogle opgaver. For web-designeren, der ikke kender meget til
> > Java ser det ud som en udvidelse af HTML med evt. forretningslogik.
>
> Har du et eksempel på det, det lyder som noget jeg kunne lære noget af
>
> /Christina

Nedenstående eksempel er taget fra en lille amatør side jeg har lavet for
min ex. klasse.

Den opfylder dog ikke helt kriteriet om adskillelse af kode og
brugergrænseflade. Men lidt gør den

Det er en JSP side som viser resultatet af en søgning i en SQL database,

det er rigtigt som en anden skriver at Custom tags er det ultimative, men
dette her skulle alves hurtigt så jeg sprang over hvor gærdet var lavest

Det øverste login kode checker om brugeren er logget ind, hvis ikke bliver
de smidt hen til en login side.

Hvis du har spørgsmål bare fyr løs.

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish




<jsp:useBean id="ul" class="disky.user.UserLogin" scope="page"/>
<%
ul.setPageContext(pageContext);

if(ul.validateUser()==false)
{
response.sendRedirect("index.jsp"); file://open page after login
}
/*
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
if (request.getProtocol().equals("HTTP/1.1"))


response.setHeader("Cache-Control", "no-cache");
}
*/
try
{
String ID="";
if((ID=request.getParameter("userid"))!=null)
{
String userID=(String)session.getAttribute("userID");
session.setAttribute("userID",ID);
ul.retrieveDataHome();
ul.retrieveDataWork();
session.setAttribute("userID",userID);

%>
<TABLE BORDER="1" VALIGN="MIDDLE">
<TR>
<TD COLSPAN="2" ALIGN="CENTER" WIDTH="383">
Hjemme adresse
</TD>
</TR>
<TR>
<TD>
Navn
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="name" VALUE="<%=ul.getName()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Adresse
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="adresse" VALUE="<%=ul.getAdresse()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Postnummer
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="postnummer"
VALUE="<%=ul.getPostnummer()%>" SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
By
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="bynavn" VALUE="<%=ul.getBynavn()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Land
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="land" VALUE="<%=ul.getLand()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Telefon
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="telefon" VALUE="<%=ul.getTelefon()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Mobil telefon
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="mobil" VALUE="<%=ul.getMobil()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Email
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="email" VALUE="<%=ul.getEmail()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Homepage
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="homepage" VALUE="<%=ul.getHomepage()%>"
SIZE="40"></P>
</TD>
</TR>
<TR>
<TD>
Fax
</TD>
<TD>
<P><INPUT TYPE="TEXT" NAME="fax" VALUE="<%=ul.getFax()%>"
SIZE="40"></P>
</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="CENTER">
<TABLE BORDER="1" VALIGN="MIDDLE">
<TR>
<TD COLSPAN="2" ALIGN="CENTER" WIDTH="383">
Arbejds adresse


Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 14:49

From the top of my head:

<%@taglib uri="acme-costumer.tld" prefix="acme" %>
<TABLE>
<acme:costumerIterator query="NAME LIKE 'John %'">
<TR>
<TD><acme:costumerName></TD>
<TD><acme:costumerStatus displayType="hex"></TD>
</TR>
</acme:costumerIterator>
<TABLE>

Dette her skulle vise en tabel over alle Acme's kunder der hedder John
til fornavn. For hver kunde vises der en række med navn og status
(hexidecimalt). Dette forudsætter, at der implementeres tre Tags som kan
finde ud af ovennævnte.

-dennis


kikki wrote:

>> Men endnu bedre (i nogle situationer): Tag libraries. Hjemmelavede tags
>> der løser nogle opgaver. For web-designeren, der ikke kender meget til
>> Java ser det ud som en udvidelse af HTML med evt. forretningslogik.
>
>
> Har du et eksempel på det, det lyder som noget jeg kunne lære noget af
>
> /Christina
>
>
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"


Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 15:05


"Dennis Thrysøe" <qabi@qabi.dk> wrote in message
news:3A8D2FE4.2040709@qabi.dk...
> From the top of my head:
>
> <%@taglib uri="acme-costumer.tld" prefix="acme" %>
> <TABLE>
> <acme:costumerIterator query="NAME LIKE 'John %'">
> <TR>
> <TD><acme:costumerName></TD>
> <TD><acme:costumerStatus displayType="hex"></TD>
> </TR>
> </acme:costumerIterator>
> <TABLE>

Custom tag's er den rigtig fine måde at gøre tingene på.

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Kommentar
Fra : kikki


Dato : 16-02-01 15:16

Hvor er de hjemmelavade tags i dette eksempel ?

/Christina

Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 15:17

Soren 'Disky' Reinke wrote:

> "Dennis Thrysøe" <qabi@qabi.dk> wrote in message
> news:3A8D2FE4.2040709@qabi.dk...
>
>> From the top of my head:
>>
>> <%@taglib uri="acme-costumer.tld" prefix="acme" %>
>> <TABLE>
>> <acme:costumerIterator query="NAME LIKE 'John %'">
>> <TR>
>> <TD><acme:costumerName></TD>
>> <TD><acme:costumerStatus displayType="hex"></TD>
>> </TR>
>> </acme:costumerIterator>
>> <TABLE>
>
>
> Custom tag's er den rigtig fine måde at gøre tingene på.

Det er jeg enig i. På nær til nogle opgaver. For jeg tror ikke
umiddelbart man kan give objekter til Tags. Det kan man til beans.
Derfor skal eventuelle objekter eller andre fancy ting, der skal
udveklses med et Tag, udveksles via session, request eller pageContext.

-dennis


Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 15:30

Der er ingen. Jeg tror det var ment som et eksempel på den hellige gral
ved server-side scripting: adskillelse af indhold og presentation.

-dennis



kikki wrote:

> Hvor er de hjemmelavade tags i dette eksempel ?
>
> /Christina
>
>
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"


Kommentar
Fra : kikki


Dato : 16-02-01 15:38

Jeg går ud fra at :
hemmeligheden ligger i denne linie :
<%@taglib uri="acme-costumer.tld" prefix="acme" %>
men hvad ligger der bag det ?

/Christina

Kommentar
Fra : Nyhedsbruger


Dato : 16-02-01 16:33

Hejsa

Du skal næsten gå ind på java.sun.com og finde den / de tutorials som
omhandler "Custom Tags".

Det er et stort emne.. og der er masser info....

*.tld er definitions filen på den/de tags som man har lavet.. og acme er det
namespace de ligger i...

flemming


"kikki" <kikki.news@kandu.dk> wrote in message
news:RWaj6.72266$zw.1288637@twister.sunsite.dk...
> Jeg går ud fra at :
> hemmeligheden ligger i denne linie :
> <%@taglib uri="acme-costumer.tld" prefix="acme" %>
> men hvad ligger der bag det ?
>
> /Christina
>
>
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>



Kommentar
Fra : Nyhedsbruger


Dato : 19-02-01 09:13


"kikki" <kikki.news@kandu.dk> wrote in message
news:uCaj6.72204$zw.1287044@twister.sunsite.dk...
> Hvor er de hjemmelavade tags i dette eksempel ?
>
> /Christina

Dette er en af dem:
<acme:costumerIterator query="NAME LIKE 'John %'">

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407862
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste