tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <>
Subject Re: Tomcat strips CRLFs from the generated page
Date Tue, 14 Jan 2014 15:02:04 GMT
Hash: SHA256


On 1/13/14, 9:36 AM, André Warnier wrote:
> Asok Chattopadhyay wrote:
>> Hi,
>> My servlet generates a page containing embedded JavaScript and
>> sometimes the page received in the browser comes with CRLFs
>> stripped from the text, starting at some point in the text. This
>> creates a big problem if the script contains CRLF as statement
>> separator instead of semi-colon. It's strange that not the entire
>> text is stripped. Say, the first 150 lines comes as it is,
>> whereas starting from line 151, all the CRLFs are stripped. It is
>> fairly consistent for the same page.
>> I am using Tomcat 6.0.37.
>> Why does it happen? Is anything in the text triggers this? Is
>> there a way to overcome this problem, as I don't have control
>> over the actual content?
>> Thanks in advance.
>> Here is the example.
>> LINE 148:    <script type="text/javascript" 
>> SRC="html/scripts/combotext.js"></script>
>> LINE 149:    <script type="text/javascript" 
>> SRC="html/scripts/datepicker.js"></script>
>> LINE 150:    <script type="text/javascript" 
>> SRC="html/scripts/combo.js"></script>
>> LINE 151:    <script type="text/javascript" 
>> SRC="html/scripts/calc.js"></script>    <script
>> type="text/javascript" 
>> SRC="html/scripts/dream.js"></script><script
>> language="javascript" type="text/javascript">var buttonfunction 
>> clicked(b){button=b.value}function submitit(form){if 
>> (button=="Details"){ =
>> "opcdt"form.searchbutton.value = "Top"}}function
>> pickProduct(link, cus){if (navigator.appName.indexOf("Netscape")
>> >= 
>> 0){}else{}return
>> onload="topBottom();move_caret('one','xcrnnum');" 
>> style="margin:0;padding:0;"><!--<div id="darkBackgroundLayer" 
>> class="darkenBackground"> ...
> Hi. I have to disregard your example above, because once reformated
> by the various email agents in-between, there is no telling anymore
> what the original was like.
> In general, are you not just victim of the following circumstances
> ?
> In HTML (and I suppose that this also includes embedded 
> <script>..</script> sections, an "end of line" is composed of 2 
> characters : a "carriage return" (CR) and a "line feed" (LF).

HTML actually doesn't care. One could argue that because HTTP uses
CR+LF as line-endings for things like headers that HTML documents
should work the same way, but that's not a part of the standard (at
least not that I could find, and I wasn't going to pay for a copy of
the SGML standard to check, either).

I'm not really sure why the OP is so concerned about line endings.
Tomcat is not stripping them. This code seems particularly dubious:

			s += new String(b);

That last line will convert an array of bytes into a String value.
Newlines should not be stripped, but other kinds of characters
(basically anything not in the current default encoding) will likely

> When you are running a java program, the "println" function
> probably appends an "end of line" sequence to what you are
> printing, but this end of line sequence depends on the platform on
> which your java program runs : - on a Windows system, the end of
> line sequence would be CR + LF - on a Unix/Linux system, it will be
> just LF - on a Mac system, it would be just CR


This line of code introduces an artificial newline at the end of the file:


That is, it mutates the resource as it is being served. :(

> So depending on what platform your server is running, and on what 
> platform the client is running, they may interpret the result
> differently.
> In other words, if your java application is outputting HTML and/or 
> javascript, you should probably not be using "println".  You should
> be using "print", and explicitly append a CR and LF to your output
> lines. ("\r\n" ?).

... not that it matters very much, because the client should not care.

- -chris
Version: GnuPG v1
Comment: GPGTools -
Comment: Using GnuPG with Thunderbird -


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message