Java応答コンテンツは<または>&lt; &gt;
-
22-09-2019 - |
質問
少し問題があります。ファイルのコンテンツに応答し、AJAX応答としてクライアントに返すように書いています。
しかし、html置換が発生します >
に >
等...
この代替をオフにするために私は何をしなければなりませんか?
res.setHeader( "Cache-Control", "must-revalidate, post-check=0, pre-check=0" );
res.setHeader( "Pragma", "public" );
res.setContentType( "text/html" );
ティア
アップデート
// import com.ibm.useful.http.PostData;
PostData pd = new PostData( req );
final FileData data;
try {
data = pd.getFileData( "sqlFile" );
ByteArrayOutputStream buf = new ByteArrayOutputStream();
for ( byte b : data.getByteData() ) {
buf.write( b );
}
res.getWriter().print( buf.toString() );
}
私は見ました buf.toString()
デバッガーを通じて。大丈夫です。代替はさらに進みます。しかしここで...
解決
HTML特殊文字は逃げられます HTMLエンティティ.
あなたがいる場合 承知しました これは、応答にそれを書いた直後に起こったことと、応答データがクライアントに到着する直前に、チェーンにHTMLエンティティを逃れたフィルターがチェーンにある可能性があります。宣言されたフィルターをチェックしてください web.xml
と調整します url-pattern
必要であれば。
他のヒント
これは通常、HTML文字(
<, > , "
とりわけ)逃げられています。 Escapeまたは同様にEscapeを設定してみてください。 「com.ibm.useful.http.postdata」のAPIドキュメントが見つかりません
以下のスニペットを使用してみてください:
res.setContentType("text/html; charset=UTF-8");
使用している場合は、データベースもUTF-8エンコードに設定されていることを確認してください。
これが解決しない場合は、これを読んでください 論文.
所属していません StackOverflow