2011-01-18 20 views
2

私はこの問題に固執しています。答えはまっすぐであるかもしれませんが、私の人生にとってはわかりません。ここでテキストで表示JSPの応答

は私の非常に単純な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によって設定されていますか?

+0

答えはありませんでしたが(実際には*正しい*解決策)、JSPの代わりにサーブレットを使うことになるでしょう。基本的にここではHTML以外のコンテンツに対してJSPを悪用しています。 – BalusC

+0

サーブレットを見てから、すばやく(そして汚れた)解決策が必要でした。 – TungstenX

+0

@ TungstenX私はまったく同じ問題を抱えていますが、私はディスパッチャーサーブレットを使用しています。もう助けてもらえますか? –

答えて

4

をやっていること

は、あなたのリクエストパラメータを点検し、見直し:赤面:エピックは失敗します!

Google Chromeにのテキスト/プレーンが表示されている場合は、これをhtmlで(上記のように)ラップします。私はそのようなnoobの開発者のように感じる。私は他のブラウザでそれをチェックして、テストアプリを書いていたはずです。いずれにしても、私はBalusCのアドバイスに従ってサーブレットを作った

+1

面白いですが、それも分かりませんでした。 JSONの場合、実際には 'text/plain'ではなく' application/json'を使ってください。 – BalusC

+0

聖なる牛!あなたが正しい。ちょうどそれをフィドラーとチェックアウトして、それは本当です。 – juliangonzalez

-1

あなたはどのウェブコンテナを使用していますか? Apache Tomcat 6.24でこれを試しました。ハードコードされたjson文字列を返すようにメソッドを変更しました。出力の周りにHTMLマークアップがなくてもOKでした。あなたのSubscriberAPI ::チェック方法は

+0

OPにタグ付き 'glassfish'があります。 – BalusC

+0

グラスフィッシュv2。要求パラメータとJavaコードは良好です。それはjsonの文字列を返します(htmlは含まれません) – TungstenX

関連する問題