纯文本JSP响应
我被这个问题困住了。答案可能是直截了当的,但就我个人而言,我无法找到答案 这是我非常简单的jsp文件:纯文本JSP响应,jsp,glassfish,response,plaintext,Jsp,Glassfish,Response,Plaintext,我被这个问题困住了。答案可能是直截了当的,但就我个人而言,我无法找到答案 这是我非常简单的jsp文件: <%@page contentType="text/plain" import="java.util.*" import="subscriberapi.SubscriberAPI" pageEncoding="UTF-8"%> <%!private String Check(String jsonText) { SubscriberAPI subscriberAP
<%@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"))%>
但我得到的结果是:
<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设置的吗?您使用的web容器是什么?在ApacheTomcat6.24中尝试了这一点。我更改了您的方法以返回硬编码的json字符串。工作正常,输出周围没有html标记 检查您的请求参数并查看SubscriberAPI::Check方法正在执行的操作:blush:Epic失败
当GoogleChrome显示为text/plain时,它会将其包装为html(如上所述)。我觉得自己像个noob开发者。我应该在其他浏览器上检查它,或者编写一个测试应用程序。在任何情况下,我都遵循BalusC的建议,创建了一个Servlet并不是一个答案(我以前从未见过这个),而是一个解决方法(实际上,是正确的解决方案)是使用Servlet而不是JSP。您在这里基本上滥用JSP来处理非HTML内容。然后我会看看Servlet,我需要一个快速(肮脏)的解决方案。@TungstenX我遇到了完全相同的问题,但我使用的是dispatcher Servlet。我能得到更多的帮助吗?玻璃鱼v2。请求参数和java代码都很好。它返回一个json字符串(不包括html),这很有趣,我也不知道。注意,对于JSON,实际上应该使用
application/JSON
而不是text/plain
。天哪!你说得对。刚刚和Fiddler核实过,这是真的。
<html>
<head></head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">{"Status":true,"Message":"All good"}</pre>
</body>
</html>