在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= %>不输出空行呢?
例如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= %>不输出空行呢?
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page contentType="application/xml; charset=UTF-8" %>但空行仍然存在
这是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生成内容,就不会出现以上问题了