日期:2014-05-18  浏览次数:20738 次

jsp <%@ page= %> 中输出一空行,如何禁止这空行输出
在jsp页面中,如果jsp代码含有 <%@   page=   %> 这样的定义时,在输出成html或者xml的时候,会输出一空行,有多少个 <%@   page=   %> 定义就输出多少行空行,用firefox浏览器该jsp的时候,由于 <?xml   version= "1.0 "   encoding= "UTF-8 "   ?> 前面有若干个空行,该xml没法正常显示。
例如test.jsp
<%@   page   import= "java.io.* "   %>
<%@   page   import= "java.util.* "   %>
<%@   page   contentType= "application/xml;   charset=UTF-8 "   %>
out.println( " <?xml   version=\ "1.0\ "   encoding=\ "utf-8\ "   ?> ");
out.println( " <CONTENT> ");
out.println( " </CONTENT> ");

输出:
空行1
空行2
空行3
<?xml   version=\ "1.0\ "   encoding=\ "utf-8\ "   ?>
<CONTENT>
</CONTENT>

如何设置 <%@   page=   %> 不输出空行呢?


------解决方案--------------------
这个问题原则上没法解决!
这是Tomcat自动编译成一个class文件时中间有这个语句:
...
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
out.write( "\r\n ");
out.write( "\r\n ");
===================================================================
不过有一个方法,就是你不要用jsp生成,直接用Servlet生成内容,就不会出现以上问题了