Cannot forward after response has been committed

2005-09-19 Thread Michael Lai
I have a jsp page that processes a login.  The (simplified) code is 
something like this:


%@ page language=java%
%
String userid = request.getParameter(userid);
String pw = request.getParameter(pw);

/* code to check user id and password */

if (user not found)
  pageContext.forward(login.jsp);
else
  pageContext.forward(userpage.jsp);
%

Please note that nowhere in my jsp code do I use the out object or 
send some outputs back to the client.  Yet, I am getting this Cannot 
forward after response has been committed error.  If I comment out the 
forward statements then the error disappears.  Any help is appreciated.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Cannot forward after response has been committed

2005-09-19 Thread Tony
Actually, the line end after the first line is sent back to the client,
with apropriate html headers invented.
%@ page language=java%%// now the line end is in java not in html

Yep, looks ugly.
What is even worse is code that sends a redirect and does NOT do a return.

-Original Message-
From: Michael Lai [mailto:[EMAIL PROTECTED]
Sent: Monday, September 19, 2005 10:17 PM
To: Tomcat Users List
Subject: Cannot forward after response has been committed


I have a jsp page that processes a login.  The (simplified) code is 
something like this:

%@ page language=java%
%
String userid = request.getParameter(userid);
String pw = request.getParameter(pw);

/* code to check user id and password */

if (user not found)
   pageContext.forward(login.jsp);
else
   pageContext.forward(userpage.jsp);
%

Please note that nowhere in my jsp code do I use the out object or 
send some outputs back to the client.  Yet, I am getting this Cannot 
forward after response has been committed error.  If I comment out the 
forward statements then the error disappears.  Any help is appreciated.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Cannot forward after response has been committed

2005-09-19 Thread Michael Lai

I have an index.jsp page that checks a user's access level:

%@ page language=java errorPage= %
%
String userid = (String)session.getAttribute(UserId);

if (userid == null) {
  pageContext.forward(login.jsp);
} else {
  String access = (String)session.getAttribute(Access);

  switch (access.charAt(0)) {
 case 'A':
pageContext.forward(admin/index.jsp);
 case 'R': case 'W':
pageContext.forward(db/index.jsp);
 default:
pageContext.forward(login.jsp);
  }
}
%

And yet the above page works even with the %@ page language=java % 
line.  I don't understand why the above code works but the doesn't work 
for another page.


What do you propose -- that I remove the %@ page... % line?

[EMAIL PROTECTED] wrote:


Actually, the line end after the first line is sent back to the client,
with apropriate html headers invented.
%@ page language=java%%// now the line end is in java not in html

Yep, looks ugly.
What is even worse is code that sends a redirect and does NOT do a return.

-Original Message-
From: Michael Lai [mailto:[EMAIL PROTECTED]
Sent: Monday, September 19, 2005 10:17 PM
To: Tomcat Users List
Subject: Cannot forward after response has been committed


I have a jsp page that processes a login.  The (simplified) code is 
something like this:


%@ page language=java%
%
String userid = request.getParameter(userid);
String pw = request.getParameter(pw);

/* code to check user id and password */

if (user not found)
  pageContext.forward(login.jsp);
else
  pageContext.forward(userpage.jsp);
%

Please note that nowhere in my jsp code do I use the out object or 
send some outputs back to the client.  Yet, I am getting this Cannot 
forward after response has been committed error.  If I comment out the 
forward statements then the error disappears.  Any help is appreciated.




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Cannot forward after response has been committed

2005-09-19 Thread Tony
You want the line breaks, either line-feed or carriage-return, line-feed
to occur within the java or jsp code, not within the html code.
Sometimes the html is buffered and ignored when something else puts out
headers or such.

Within HTML, line breaks do not matter much
Before HTML, any line break implies that HTML has started and you can get
default headers without doing anything.
Within JSP or Java, line breaks do not matter much.

Choice of uglies.
%@ page ...
%% code here

%@ page ... %%
code here

%@ page %
---there is here the line break of the above line---
% at this point the response has been committed by outputting the above
\r\n or whatever


-Original Message-
From: Michael Lai [mailto:[EMAIL PROTECTED]
Sent: Monday, September 19, 2005 10:34 PM
To: Tomcat Users List
Subject: Re: Cannot forward after response has been committed


I have an index.jsp page that checks a user's access level:

%@ page language=java errorPage= %   --there is an html new-line
here!!!
%
String userid = (String)session.getAttribute(UserId);

if (userid == null) {
   pageContext.forward(login.jsp);
} else {
   String access = (String)session.getAttribute(Access);

   switch (access.charAt(0)) {
  case 'A':
 pageContext.forward(admin/index.jsp);
  case 'R': case 'W':
 pageContext.forward(db/index.jsp);
  default:
 pageContext.forward(login.jsp);
   }
}
%

And yet the above page works even with the %@ page language=java %
line.  I don't understand why the above code works but the doesn't work
for another page.

What do you propose -- that I remove the %@ page... % line?

[EMAIL PROTECTED] wrote:

Actually, the line end after the first line is sent back to the client,
with apropriate html headers invented.
%@ page language=java%%// now the line end is in java not in html

Yep, looks ugly.
What is even worse is code that sends a redirect and does NOT do a return.

-Original Message-
From: Michael Lai [mailto:[EMAIL PROTECTED]
Sent: Monday, September 19, 2005 10:17 PM
To: Tomcat Users List
Subject: Cannot forward after response has been committed


I have a jsp page that processes a login.  The (simplified) code is
something like this:

%@ page language=java%
%
String userid = request.getParameter(userid);
String pw = request.getParameter(pw);

/* code to check user id and password */

if (user not found)
   pageContext.forward(login.jsp);
else
   pageContext.forward(userpage.jsp);
%

Please note that nowhere in my jsp code do I use the out object or
send some outputs back to the client.  Yet, I am getting this Cannot
forward after response has been committed error.  If I comment out the
forward statements then the error disappears.  Any help is appreciated.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Cannot forward after response has been committed

2005-09-19 Thread Michael Lai
I put a 'return' statement after every 'forward' statement in all my jsp 
pages and now it seems to be working.  Thanks for your feedback.


Actually, my linebreak occurs in the % % tags.  I think my email 
client might have reformatted my output before sending.


[EMAIL PROTECTED] wrote:


You want the line breaks, either line-feed or carriage-return, line-feed
to occur within the java or jsp code, not within the html code.
Sometimes the html is buffered and ignored when something else puts out
headers or such.

Within HTML, line breaks do not matter much
Before HTML, any line break implies that HTML has started and you can get
default headers without doing anything.
Within JSP or Java, line breaks do not matter much.

Choice of uglies.
%@ page ...
%% code here

%@ page ... %%
code here

%@ page %
---there is here the line break of the above line---
% at this point the response has been committed by outputting the above
\r\n or whatever



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat 5: What to look for when reciving 'Cannot forward after response has been committed'

2004-05-03 Thread Yansheng Lin
More specific, please:).  Normally you put a break point somewhere and trace
it to the line that throws exception, if you have the source code for
tomcat, you can step into that line.

-Yan

-Original Message-
From: Lars Ohlén [mailto:[EMAIL PROTECTED] 
Sent: May 2, 2004 10:35
To: Tomcat Users List
Subject: Tomcat 5: What to look for when reciving 'Cannot forward after
response has been committed'




Hi,
While converting from an older Tomcat version I run into the
IllegalStateException that says
Cannot forward after response has been committed

I dont think that I have duplicate forwards so there must be something else
to look for
(My guess is PrintWriter outputs, response.addCookie). 

Exception is throws from a servlet.


/Lars





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Tomcat 5: What to look for when reciving 'Cannot forward after response has been committed'

2004-05-02 Thread Lars Ohlén


Hi,
While converting from an older Tomcat version I run into the IllegalStateException 
that says
Cannot forward after response has been committed

I dont think that I have duplicate forwards so there must be something else to look for
(My guess is PrintWriter outputs, response.addCookie). 

Exception is throws from a servlet.


/Lars