tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jon Wingfield <jon.wingfi...@mkodo.com>
Subject Re: xhtml and Internet Explorer
Date Thu, 30 Oct 2003 19:28:18 GMT
Put all the tag and page directives on one line. Looks horrible in the 
source but if it works...

The alternative is to write a filter which wraps the response and strips 
off the empty lines at the beginning as they are written to the 
outputstream.
We've implemented this and it works quite nicely. We restrict it to 
text/* content-types ;) The only downer is the additional "broken pipe" 
IOExceptions that we now log when someone hits stop in their browser. :(

Jon

Marius Scurtescu wrote:

> Thanks for all the replies. I did solve the mystery.
> IE is indeed a POS.
> 
> It looks like it completely ignores the Content-Type
> headers and it just scans the beginning of the file.
> 
> The JSPs I was struggling with are using lots of JSP
> directives (tag lib and page), includes and tiles.
> The result was that there were many empty lines after
> the DOCTYPE declaration and the <html> tag. IE seems
> to be scanning for the <html> tag (don't ask why) and
> if it does not find it soon enough then it gives up
> and treats the file as raw XML. Pretty smart.
> 
> I attached a test file which on my system is treated
> as raw XML. If I delete on single empty line before
> the <html> tag then it is treated as XHTML.
> 
> Now this is sort of a show stopper for me, unless I
> find a way to reduce the empty lines a the top of
> a file. Is there a way in Tomcat to prevent the
> creation of an empty line for each JSP directive?
> I cannot move the <html> tag on top since it is
> generated in a layout file and imported through
> tiles.
> 
> A few more observation regarding IE. It seems that
> one it guessed the type of a page it is caching that
> info in memory. Deleting temporary files and forcing
> a check on every visit does not help. You have to
> close the browser in order to flush this cache.
> Loading pages from the file system has a completely
> different logic, it is based on the file extension
> (there is no scanning for <html> tag).
> 
> Thanks again,
> Marius
> 
> Carlos Pereira wrote:
> 
>>> That's because IE ignores the Content-Type header and just looks at the
>>> first few bytes of the file to decide how to display it. What a POS.
>>> Anyway...
>>
>>
>> (Christopher Schultz)
>>
>> IE works like this: in the first call to a web page, it checks the
>> Content-Type and displays the web page accordingly. Next time you request
>> the same page, it ignores the Content-Type.
>>
>>
>>>> I know that this issue came up before on this
>>>> list, but the solution suggested previously
>>>> (adding a page directive with the content type)
>>>> does not work.
>>
>>
>> (Marius Scurtescu)
>>
>> So, do the following:
>> 1. You have to make sure IE is foing to display the most recent page. You
>> can do this by either adding a pragma/no-cache header, or go to (in IE):
>> tools/internet options/temporary internet files/settings and, under 
>> "check
>> for newer versions of stored pages", select the "every visit to the page"
>> option. When you are developing, this last thing should ALWAYS be done.
>> Otherwise, you might be getting IE cached versions of the web page and
>> asking yourself why the changes aren't working.
>> 2. Force IE to read the Content-Type again. Simply shut down the browser,
>> and request your xhtml page to see if it works.
>>
>> Hope that helps.
>> Carlos Pereira
> 
> 
> 
> ------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message