纯文本JSP响应

时间:2011-01-18 15:12:29

标签: jsp glassfish response plaintext

我坚持这个问题。答案可能是直截了当的,但对于我的生活,我无法理解。

这是我非常简单的jsp文件:

<%@page contentType="text/plain" 
import="java.util.*" 
import="subscriberapi.SubscriberAPI"
pageEncoding="UTF-8"%>
<%!private String Check(String jsonText)
{
    SubscriberAPI subscriberAPI = new SubscriberAPI();
    return subscriberAPI.Check(jsonText);
}%>
<%response.setContentType("text/plain");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("pragma","no-cache");%>
<%=Check(request.getParameter("jsonText"))%>

我希望输出为:

{"Status":true,"Message":"All good"}

但我得到的输出是:

<html>
<head></head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">{"Status":true,"Message":"All good"}</pre>
</body>
</html>

在浏览器中看起来是正确的,但实际响应会转到另一个不需要html的进程。

如何绕过响应摆脱html构建? 这是由Glassfish设定的吗?

2 个答案:

答案 0 :(得分:5)

:脸红:史诗失败!

当Google Chrome显示 text / plain 时,它会将其包装在html中(如上所述)。我觉得这样的菜鸟开发者。我应该在其他浏览器上检查它,或者写一个测试应用程序。无论如何,我遵循了BalusC的建议并制作了一个Servlet

答案 1 :(得分:-1)

您使用的是哪个网络容器?在Apache Tomcat 6.24中尝试过这个。我改变了你的方法以返回一个硬编码的json字符串。工作正常,输出周围没有html标记。

检查您的请求参数并查看您的SubscriberAPI :: Check方法正在执行的操作