在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= %>不输出空行呢?

解决方案 »

  1.   

    可以把<%@ page= %>放在jsp文件的末尾,这样可以解决firefox的浏览xml问题
    <%@ page import="java.io.*" %>
    <%@ page import="java.util.*" %>
    <%@ page contentType="application/xml; charset=UTF-8" %>但空行仍然存在
      

  2.   

    这个问题原则上没法解决!
    这是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生成内容,就不会出现以上问题了
      

  3.   

    问问楼主这样生成xml会不会有问题,感觉好象不可以,