Re: Whitespace generated by JSTL tags
On Wed, 22 Jan 2003 [EMAIL PROTECTED] wrote: Hi, Corby Jacobs wrote: 1) whitespace the developer added to make the JSP more readable seems to be repeated in the HTML sent to the client (and duplicated if it's inside a c:forEach tag) ... My question is this: Is there any way to avoid all this whitespace caused by core JSTL tags? I recently noticed that the Ant 1.5 added ReplaceRegExp optional task. My idea is (... haven't tried yet but will do soon) to filter the manually written JSP files by ReplaceRegExp task with the match=^\s* replace= attributes. This will chomp off the leading and \t chars in each lines for readablity, leaving newlines there. You can do this filtering when you replicate JSPs from the src dir to the build dir to create a .war file for deployment. I suppose this very low-tech (therefore, safe) code de-cosmetics will have noticeable effect for decreasing the size of the JSP response. It will also have a noticeable - and undesirable - effect on any pre sections in the JSP page, causing them to be rendered incorrectly. -- Martin Cooper MATSUHASHI,kazuaki -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Whitespace generated by JSTL tags
Martin Cooper wrote: It will also have a noticeable - and undesirable - effect on any pre sections in the JSP page, causing them to be rendered incorrectly. You are right. I also want pre sections untouched. Hum... A possible countermeasure could be to write a custom Ant task which does the similar string relacement as the ant ReplaceRegExp task does while caring in/out status of PRE start/end tags (very easy to write if in awk :-). I will try this approach and come back here when finished. MATSUHASHI,kazuaki -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Whitespace generated by JSTL tags
I use a tag from the coldtags suit called optimize. It can be found here http://coldjava.hypermart.net/servlets/opttags.htm along with info. Hope it helps, Thorgils I am investigating an issue with a JSP page which, under certain circumstances, generates a 22.4 MB file to send back to the client. Turns out, a substantial portion of this page is whitespace. As I see it, the whitespace is coming from two places: 1) whitespace the developer added to make the JSP more readable seems to be repeated in the HTML sent to the client (and duplicated if it's inside a c:forEach tag) and 2) the tags themselves are generating extra newline characters To address issue 1, I edited the JSP file, changed all tabs to one blank space, and removed all empty lines. This reduced the size of the file from 22.4MB to 4.1MB. Then, within the triple-nested c:forEach loops, I made the code all one line -- very ugly, but reduced the size of the HTML file to 367kB. To confirm my suspicions on issue 2, I re-wrote a small excerpt of the page to use scriptlets instead of c:forEach and c:if tags. The loop is used to generate a select with options whose value depend on the iteration through the loop. As you can see in the excerpt from the view page source sent to the client, the version generated with the core JSTL tags has extra whitespace between the options. Imagine doing this for a menu of 100 options, 3 times, and you can see where all the whitespace is coming from. I tested this with both Tomcat and Weblogic as the web server. My question is this: Is there any way to avoid all this whitespace caused by core JSTL tags? table tr td align=left bgcolor=#ff This selection menu was generated using standard JSTL tags lt;c:ifgt;, lt;c:forEachgt;, and lt;c:outgt;. /td /tr tr td align=left bgcolor=#ff select name=termselector option value=wordNode_1 testID=option_wordNode_1 HELP /option option value=wordNode_2 testID=option_wordNode_2 USER /option option value=wordNode_3 testID=option_wordNode_3 WRITE /option option value=wordNode_4 testID=option_wordNode_4 QUERY /option /select /td /tr tr td align=left bgcolor=#ff This selection menu was generated using scriptlets instead of standard JSTL tags. /td /tr tr td align=left bgcolor=#ff select name=termselector option value=wordNode_1 testID=option_wordNode_1 HELP /option option value=wordNode_2 testID=option_wordNode_2 USER /option option value=wordNode_3 testID=option_wordNode_3 WRITE /option option value=wordNode_4 testID=option_wordNode_4 QUERY /option /select /tr /td /table Thanks, Corby Jacobs [EMAIL PROTECTED] Convera Corporation 11000 Broken Land Pkwy Columbia, MD 21044 -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org Kveðja, Þorgils Völundarson Krabbameinsfélag Íslands, Krabbameinsskrá Beinn sími: 540 1973 netfang: [EMAIL PROTECTED] gsm: 698 5302 -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
Re: Whitespace generated by JSTL tags
Hi, Hans Bergsten wrote: Anyway, the best way to handle it is probably to use a filter that compresses the response (most browsers supports compressed responses today) since that would reduce the space needed for both whitespace and repeated tags. See this article for an example of the implementation of such a filter: http://www.javaworld.com/javaworld/jw-06-2001/jw-0622-filters.html Has anybody used this filer with a recent tomcat Version? I mostly get 0 length files from this filter (Tomcat 4.1.12) ... Thank you for any hints, Wolfgang -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
Re: Whitespace generated by JSTL tags
there were discussions a while back on this topic. I submitted a suggestion to the expert group for JSP requarding this issue for JSP compile filters. Using compression is one fix, but it doesn't really address the heart of the problem. If you look at the generated source file, you will see tons of out.write for all those blank lines. It's a bit wasteful to have all blank lines, so there should be a clear specification on how JSP page compiler should remove extra spaces if application desires. I had several discussions with the developers of Jasper2. The current spec states the whitespace and blank lines have to be preserved. I'm hoping the JSP spec after 2.0 will address this issue and make it a configurable. peter Wolfgang Röckelein wrote: Hi, Hans Bergsten wrote: Anyway, the best way to handle it is probably to use a filter that compresses the response (most browsers supports compressed responses today) since that would reduce the space needed for both whitespace and repeated tags. See this article for an example of the implementation of such a filter: http://www.javaworld.com/javaworld/jw-06-2001/jw-0622-filters.html Has anybody used this filer with a recent tomcat Version? I mostly get 0 length files from this filter (Tomcat 4.1.12) ... Thank you for any hints, Wolfgang -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
Re: Whitespace generated by JSTL tags
Wolfgang Röckelein wrote: I mostly get 0 length files from this filter (Tomcat 4.1.12) ... So... the compression is working really, really well. I suppose you're going to complain about the decompression now? ;) Dave -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
RE: Whitespace generated by JSTL tags
-Original Message- From: peter lin [mailto:peter.lin;labs.gte.com] Sent: Thursday, November 14, 2002 4:05 AM To: Tag Libraries Users List Subject: Re: Whitespace generated by JSTL tags there were discussions a while back on this topic. I submitted a suggestion to the expert group for JSP requarding this issue for JSP compile filters. Using compression is one fix, but it doesn't really address the heart of the problem. If you look at the generated source file, you will see tons of out.write for all those blank lines. It's a bit wasteful to have all blank lines, so there should be a clear specification on how JSP page compiler should remove extra spaces if application desires. I had several discussions with the developers of Jasper2. The current spec states the whitespace and blank lines have to be preserved. I'm hoping the JSP spec after 2.0 will address this issue and make it a configurable. Yes, it would have to be configurable. A lot of people seem to assume that JSP always generates HTML to it's safe to always collapse whitespace, but that's not true, and whitespace sometimes matters. -- Martin Cooper peter Wolfgang Röckelein wrote: Hi, Hans Bergsten wrote: Anyway, the best way to handle it is probably to use a filter that compresses the response (most browsers supports compressed responses today) since that would reduce the space needed for both whitespace and repeated tags. See this article for an example of the implementation of such a filter: http://www.javaworld.com/javaworld/jw-06-2001/jw-0622-filters.html Has anybody used this filer with a recent tomcat Version? I mostly get 0 length files from this filter (Tomcat 4.1.12) ... Thank you for any hints, Wolfgang -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
Re: Whitespace generated by JSTL tags
really stupid answer but you could try wrapping it all in a string taglib which search and replaced for whitespace :) Hen On Wed, 13 Nov 2002, Corby Jacobs wrote: I am investigating an issue with a JSP page which, under certain circumstances, generates a 22.4 MB file to send back to the client. Turns out, a substantial portion of this page is whitespace. As I see it, the whitespace is coming from two places: 1) whitespace the developer added to make the JSP more readable seems to be repeated in the HTML sent to the client (and duplicated if it's inside a c:forEach tag) and 2) the tags themselves are generating extra newline characters To address issue 1, I edited the JSP file, changed all tabs to one blank space, and removed all empty lines. This reduced the size of the file from 22.4MB to 4.1MB. Then, within the triple-nested c:forEach loops, I made the code all one line -- very ugly, but reduced the size of the HTML file to 367kB. To confirm my suspicions on issue 2, I re-wrote a small excerpt of the page to use scriptlets instead of c:forEach and c:if tags. The loop is used to generate a select with options whose value depend on the iteration through the loop. As you can see in the excerpt from the view page source sent to the client, the version generated with the core JSTL tags has extra whitespace between the options. Imagine doing this for a menu of 100 options, 3 times, and you can see where all the whitespace is coming from. I tested this with both Tomcat and Weblogic as the web server. My question is this: Is there any way to avoid all this whitespace caused by core JSTL tags? table tr td align=left bgcolor=#ff This selection menu was generated using standard JSTL tags lt;c:ifgt;, lt;c:forEachgt;, and lt;c:outgt;. /td /tr tr td align=left bgcolor=#ff select name=termselector option value=wordNode_1 testID=option_wordNode_1 HELP /option option value=wordNode_2 testID=option_wordNode_2 USER /option option value=wordNode_3 testID=option_wordNode_3 WRITE /option option value=wordNode_4 testID=option_wordNode_4 QUERY /option /select /td /tr tr td align=left bgcolor=#ff This selection menu was generated using scriptlets instead of standard JSTL tags. /td /tr tr td align=left bgcolor=#ff select name=termselector option value=wordNode_1 testID=option_wordNode_1 HELP /option option value=wordNode_2 testID=option_wordNode_2 USER /option option value=wordNode_3 testID=option_wordNode_3 WRITE /option option value=wordNode_4 testID=option_wordNode_4 QUERY /option /select /tr /td /table Thanks, Corby Jacobs [EMAIL PROTECTED] Convera Corporation 11000 Broken Land Pkwy Columbia, MD 21044 -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
Re: Whitespace generated by JSTL tags
Hi, I too noticed the white space issue. Though it is not in the scale that you described, it is a problem. It has to be addressed as this will certainly be the source of page bloat for unsuspecting people. As a temp fix try using Gzip compression on the pages. This is the sort of thing that I think GZIP can really help with. I use a servlet filter that does this automatically. Stef - Original Message - From: Henri Yandell [EMAIL PROTECTED] To: Tag Libraries Users List [EMAIL PROTECTED] Sent: Wednesday, November 13, 2002 4:17 PM Subject: Re: Whitespace generated by JSTL tags really stupid answer but you could try wrapping it all in a string taglib which search and replaced for whitespace :) Hen On Wed, 13 Nov 2002, Corby Jacobs wrote: I am investigating an issue with a JSP page which, under certain circumstances, generates a 22.4 MB file to send back to the client. Turns out, a substantial portion of this page is whitespace. As I see it, the whitespace is coming from two places: 1) whitespace the developer added to make the JSP more readable seems to be repeated in the HTML sent to the client (and duplicated if it's inside a c:forEach tag) and 2) the tags themselves are generating extra newline characters To address issue 1, I edited the JSP file, changed all tabs to one blank space, and removed all empty lines. This reduced the size of the file from 22.4MB to 4.1MB. Then, within the triple-nested c:forEach loops, I made the code all one line -- very ugly, but reduced the size of the HTML file to 367kB. To confirm my suspicions on issue 2, I re-wrote a small excerpt of the page to use scriptlets instead of c:forEach and c:if tags. The loop is used to generate a select with options whose value depend on the iteration through the loop. As you can see in the excerpt from the view page source sent to the client, the version generated with the core JSTL tags has extra whitespace between the options. Imagine doing this for a menu of 100 options, 3 times, and you can see where all the whitespace is coming from. I tested this with both Tomcat and Weblogic as the web server. My question is this: Is there any way to avoid all this whitespace caused by core JSTL tags? table tr td align=left bgcolor=#ff This selection menu was generated using standard JSTL tags lt;c:ifgt;, lt;c:forEachgt;, and lt;c:outgt;. /td /tr tr td align=left bgcolor=#ff select name=termselector option value=wordNode_1 testID=option_wordNode_1 HELP /option option value=wordNode_2 testID=option_wordNode_2 USER /option option value=wordNode_3 testID=option_wordNode_3 WRITE /option option value=wordNode_4 testID=option_wordNode_4 QUERY /option /select /td /tr tr td align=left bgcolor=#ff This selection menu was generated using scriptlets instead of standard JSTL tags. /td /tr tr td align=left bgcolor=#ff select name=termselector option value=wordNode_1 testID=option_wordNode_1 HELP /option option value=wordNode_2 testID=option_wordNode_2 USER /option option value=wordNode_3 testID=option_wordNode_3 WRITE /option option value=wordNode_4 testID=option_wordNode_4 QUERY /option /select /tr /td /table Thanks, Corby Jacobs [EMAIL PROTECTED] Convera Corporation 11000 Broken Land Pkwy Columbia, MD 21044 -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org
Re: Whitespace generated by JSTL tags
Corby Jacobs wrote: I am investigating an issue with a JSP page which, under certain circumstances, generates a 22.4 MB file to send back to the client. Turns out, a substantial portion of this page is whitespace. As I see it, the whitespace is coming from two places: 1) whitespace the developer added to make the JSP more readable seems to be repeated in the HTML sent to the client (and duplicated if it's inside a c:forEach tag) and 2) the tags themselves are generating extra newline characters To address issue 1, I edited the JSP file, changed all tabs to one blank space, and removed all empty lines. This reduced the size of the file from 22.4MB to 4.1MB. Then, within the triple-nested c:forEach loops, I made the code all one line -- very ugly, but reduced the size of the HTML file to 367kB. To confirm my suspicions on issue 2, I re-wrote a small excerpt of the page to use scriptlets instead of c:forEach and c:if tags. The loop is used to generate a select with options whose value depend on the iteration through the loop. As you can see in the excerpt from the view page source sent to the client, the version generated with the core JSTL tags has extra whitespace between the options. Imagine doing this for a menu of 100 options, 3 times, and you can see where all the whitespace is coming from. I tested this with both Tomcat and Weblogic as the web server. My question is this: Is there any way to avoid all this whitespace caused by core JSTL tags? [...] JSP _preserves_ whitespace, so it's not really accurate to say that tags generate whitespace; what you see is the newlines after the tags being preserved. Anyway, the best way to handle it is probably to use a filter that compresses the response (most browsers supports compressed responses today) since that would reduce the space needed for both whitespace and repeated tags. See this article for an example of the implementation of such a filter: http://www.javaworld.com/javaworld/jw-06-2001/jw-0622-filters.html Another alternative is to use a filter that removes whitespace, but that requires parsing of the response. You may be able to do it using something like the W3C JTidy parser, assuming the HTML is basically well-formed. http://sourceforge.net/projects/jtidy Hans -- Hans Bergsten[EMAIL PROTECTED] Gefion Software http://www.gefionsoftware.com/ Author of O'Reilly's JavaServer Pages, covering JSP 1.2 and JSTL 1.0 Details athttp://TheJSPBook.com/ -- To unsubscribe, e-mail: mailto:taglibs-user-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:taglibs-user-help;jakarta.apache.org