如何阻止Tomcat / Java包装我的输出

时间:2011-04-14 09:12:29

标签: java jsp tomcat

我有一个JSP页面,我想返回一个HTML片段。麻烦的是每当我请求JSP时,有些东西试图通过包装< html>来使HTML更有效。它周围的标签。我不希望它这样做,因为它将用于其他各种地方。

例如,以下JSP:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<script src="${applicationConfig.javascriptUrl}update.js" language="javascript" type="text/javascript"></script>
<p>Wibble</p>

将导致以下HTML:

<html  xmlns="http://www.w3.org/1999/xhtml"><head></head><script src="http://fisher.mycompany.com:8080/my-app/includes/js/update.js" language="javascript" type="text/javascript"></script>
<p>Wibble</p></html>

我真的不想要那些&lt; html&gt; &安培; &LT; HEAD&GT;在那里标记,并希望摆脱它们,但不知道这发生在哪里关闭它。有人有任何线索吗?

*编辑*

提供更多有关我想要实现的信息。这个JSP将检查各种事物并形成一个HTML。然后,可以通过Web服务调用将此HTML包含到其他应用程序中。

3 个答案:

答案 0 :(得分:3)

Servlet可以返回任何内容类型,包括javascript和图像,而不仅仅是HTML。 Tomcat不应该将jsps包装在无关标签中。我把你建议的片段放在一个jsp中,减去我没有设置的taglib,然后准确地找回了我放入的HTML。

您能告诉我们更多关于您的环境的信息吗?你在用tomcat吗?你在使用某种框架吗?

答案 1 :(得分:0)

Servlets是HTML工厂。他们希望将有效的HTML页面发送到要呈现的浏览器。在不打破整个模型的情况下,你无法“摆脱它”。

您发送“在各种其他地方使用”的片段的原始概念存在缺陷。你听起来想要设置一些可能在其他地方使用的数据 - 这是有效的 - 但我不知道如何将它包装在标记中很重要。

只有JSP应该使用标记的数据。 JSP都是关于显示的。我会重新考虑你正在做的事情并攻击你想要分享数据的方式,而不是标记。

答案 2 :(得分:0)

它可能有效的一种方法, 根据需要的有效HTML创建HTML文件, 并使用servlet返回响应,servlet应该读取HMTL文件并返回 它的内容为String,就像XML从servlet

响应一样

希望这有助于