【问题标题】:How to write trivial JSP that just returns static XML page如何编写只返回静态 XML 页面的简单 JSP
【发布时间】:2011-07-23 06:29:54
【问题描述】:

我正在尝试编写一个简单的 JSP,它返回静态 xml 文件的内容。我需要在tomcat中运行它。最终,这将更加动态,但一开始,我只想返回一个 xml 文件。任何人都可以向我指出这样一个微不足道的野兽的演示,我正在尝试了解创建 Web 应用程序并安装在 tomcat 中所需的最小块是什么。

非常欣赏,

爪爪17

【问题讨论】:

    标签: java xml jsp tomcat servlets


    【解决方案1】:

    关注这个document 总是一个好的开始。

    但你可能有问题。

    首先,做这样的事情基本上是微不足道的:

    http://example.com/app/mydynamicxml.jsp
    

    返回一个 XML blob。只需将 XML 粘贴到该文件中即可。

    但它没有 XML 内容类型。您可以通过向 JSP 添加指令来解决此问题:

    <%@page contentType="application/xml" %>
    

    但是,这会带来更多问题。

    具体来说,XML 文件不能以空格开头。它必须以 .

    开头

    该指令很可能会在您的 XML 文件中插入一个空行。

    所以,你真正想要的是:

    <%@page contentType="application/xml" %><?xml version...
    

    最后,有一个 JSPX 版本的 JSP,它使用 XML 语法,并避免了所有这些空白问题。还有一个 Tomcat 指令可以消除空白问题。但是,走出大门,这是最快的,“明显”的机智。

    【讨论】:

      【解决方案2】:

      主要是将内容类型指定为&lt;%@ page contentType="text/xml" %&gt;

      <%-- Set the content type 
      --%><%@ page contentType="text/xml" %><%-- 
      --%><?xml version="1.0" encoding="UTF-8"?>
      <root><entry key="key1" value="value1" /><entry key="key2" /></root>
      

      查看Sun site上的文章

      【讨论】:

      • 我会担心 contextType 的定义和第一个 xml 语句之间的空间。我认为 xml 语句必须在第一行才能成为有效的 xml。我实际上会将 xml 的第一行放在 contentType 后面。
      【解决方案3】:

      尝试添加 trimDirectiveWhitespaces="true" 页面指令,但我的服务器不支持。

      解决方案是简单地删除任何页面指令之后的所有换行符。

      【讨论】:

      • 该问题已被标记(不是我)并被否决(不是我),但也许可以通过编辑来改进。我试过了,但没有说服力。
      猜你喜欢
      • 1970-01-01
      • 2018-05-23
      • 2013-06-11
      • 2023-03-13
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      相关资源
      最近更新 更多