質問

少し問題があります。ファイルのコンテンツに応答し、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エンコードに設定されていることを確認してください。

これが解決しない場合は、これを読んでください 論文.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top