在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生成内容,就不会出现以上问题了