|
| Ang. flere skriv to outputstream i servlet~ Fra : Flare |
Dato : 15-10-04 20:33 |
|
Hej
Jeg er ved at strikke et lille Servlet framework sammen med et command
pattern. Jeg sender request objektet rundt for at kunne bruge det i mine
enkelte commands som bliver kaldt. Men jeg kan kun skrive til outputstreamen
én gang. resten kommer ikke med.
Jeg henter min writer med.
response.setContentType("text/html");
PrintWriter out = a.response.getWriter();
out.println(" Hello world!");
out.flush();
out.close();
Anders
| |
Jonathan Stein (15-10-2004)
| Kommentar Fra : Jonathan Stein |
Dato : 15-10-04 21:47 |
|
Flare wrote:
> ... Men jeg kan kun skrive til outputstreamen
> én gang. resten kommer ikke med.
> ...
> out.close();
Derfor?
M.v.h.
Jonathan
--
Er din e-mail vigtig? Er du træt af virus og spam i mailen?
Virus-scanning og spam-filtrering på alle mail-konti. På redundant
mail-setup med daglig backup.
http://www.jsp-hotel.dk/
| |
Flare (15-10-2004)
| Kommentar Fra : Flare |
Dato : 15-10-04 22:20 |
|
>> out.close();
>
> Derfor?
Når jeg næste gang kalder det samme kode vil jeg vel åbne den igen? Eller
hvad?
Jeg har jo flere metoder som skal have mulighed for at skrive til writeren.
Både A og B (kan) blive kaldt. Det det afhænger af en request parameter.
(klasse A)
------------------
public String Execute(HttpServletRequest request,
HttpServletResponse response) {
try
{
PrintWriter out = response.getWriter();
out.println("TestControlerl was called!");
out.flush();
out.close();
}catch(IOException e) { }
return null; }
(klasse B)
------------------
public String Execute(HttpServletRequest request,
HttpServletResponse response) {
try
{
PrintWriter out = response.getWriter();
out.println("TestControlerl was called!");
out.flush();
out.close();
}catch(IOException e) { }
return null; }
| |
Jonas Kongslund (15-10-2004)
| Kommentar Fra : Jonas Kongslund |
Dato : 15-10-04 22:50 |
|
On Fredag 15 oktober 2004 23:19, Flare wrote:
> Når jeg næste gang kalder det samme kode vil jeg vel åbne den igen? Eller
> hvad?
Når den først er lukket så kan den ikke åbnes igen.
--
Jonas Kongslund
| |
hug (19-10-2004)
| Kommentar Fra : hug |
Dato : 19-10-04 22:28 |
|
Hejsa
Åben den i execute methoden, i en try-catch-finally block laver du de to
kald til metoderne A og B, hvor en parameter til begge er din stream, og i
finally kalder du close metoden.
Altså lidt sådan (pseudo)
PrintWriter out = response.getWriter();
try
{
// Gør et eller andet A
a(out);
// Gør et eller andet B
b(out);
}
catch
{
// Whatever
}
finally
{
out.close();
}
PS. Jeg benytter altid response.getOutputStream() for at få en stream og
ikke en writer. Derefter wrapper jeg den i en BufferedWriter.. Skulle efter
sigende give bedre performance.
//Henrik
"Flare" <none@at.all> wrote in message
news:41703efd$0$230$edfadb0f@dread14.news.tele.dk...
> >> out.close();
> >
> > Derfor?
>
> Når jeg næste gang kalder det samme kode vil jeg vel åbne den igen? Eller
> hvad?
>
> Jeg har jo flere metoder som skal have mulighed for at skrive til
writeren.
> Både A og B (kan) blive kaldt. Det det afhænger af en request parameter.
>
> (klasse A)
> ------------------
> public String Execute(HttpServletRequest request,
> HttpServletResponse response) {
> try
> {
> PrintWriter out = response.getWriter();
> out.println("TestControlerl was called!");
> out.flush();
> out.close();
> }catch(IOException e) { }
> return null; }
>
> (klasse B)
> ------------------
> public String Execute(HttpServletRequest request,
> HttpServletResponse response) {
> try
> {
> PrintWriter out = response.getWriter();
> out.println("TestControlerl was called!");
> out.flush();
> out.close();
> }catch(IOException e) { }
> return null; }
>
>
| |
Jonas Kongslund (20-10-2004)
| Kommentar Fra : Jonas Kongslund |
Dato : 20-10-04 02:29 |
|
On Tirsdag 19 oktober 2004 23:27, hug wrote:
> PS. Jeg benytter altid response.getOutputStream() for at få en stream og
> ikke en writer. Derefter wrapper jeg den i en BufferedWriter.. Skulle
> efter sigende give bedre performance.
Den output stream som du får tilbage er allerede en buffered stream. Du kan
styre størrelsen på bufferet med metoden setBufferSize hørende til klassen
ServletResponse.
--
Jonas Kongslund
| |
|
|