Frage

Ich habe ein kleines Problem: Ich schreibe auf die Antwortinhalte der Datei und kehre sie als AJAX -Antwort an den Client zurück.
Aber dort tritt eine HTML -Substitution vor: von > zu > etc...
Was muss ich tun, um diesen Substitution zu machen?

res.setHeader( "Cache-Control", "must-revalidate, post-check=0, pre-check=0" );
res.setHeader( "Pragma", "public" );
res.setContentType( "text/html" );

Tia

aktualisieren

//    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() );
}

ich beobachtete buf.toString() durch Debugger. Dort ist es in Ordnung. Die Substitution geht weiter. aber wo...

War es hilfreich?

Lösung

Die HTML -Sonderzeichen werden in die Flucht entkommen HTML -Entitäten.

Wenn du bist sicher Dass dies unmittelbar nachdem Sie es in die Antwort geschrieben haben und kurz bevor die Antwortdaten am Client eintreffen, gibt es möglicherweise einen Filter in der Kette, der aus irgendeinem Grund den HTML -Entitäten entkommen ist. Überprüfen Sie die deklarierten Filter in web.xml und passen Sie die an url-pattern im Bedarfsfall.

Andere Tipps

Dies geschieht normalerweise, wenn HTML -Zeichen (

<, > , "

unter anderem) entkommen. Versuchen Sie, die Flucht auf falsche oder ähnliche Einsätze zu setzen. Die API -Dokumentation finden Sie nicht "com.ibm.useful.http.postdata".

Versuchen Sie es mit dem folgenden Snippet:

res.setContentType("text/html; charset=UTF-8");

Bitte stellen Sie sicher, dass Ihre Datenbank auch auf UTF-8-Codierung eingestellt ist, wenn Sie eine verwenden.

Wenn dies nicht löst, lesen Sie dies bitte Artikel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top