我有一个小问题:我正在写信给文件的响应内容,并将其作为AJAX响应返回给客户端。
但是发生HTML替代: >> ETC...
我该怎么做才能取代这种替代?

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

tia

更新

//    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字符(

<, > , "

除其他外)正在逃脱。尝试将逃生设置为假或类似。找不到“ com.ibm.useful.http.postdata”的API文档

尝试使用以下片段:

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

如果您使用的数据库,请确保您的数据库也设置为UTF-8编码。

如果没有解决,请阅读此 文章.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top