Java响应内容返回而不是<或>&lt; &gt;
-
22-09-2019 - |
题
我有一个小问题:我正在写信给文件的响应内容,并将其作为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编码。
如果没有解决,请阅读此 文章.
不隶属于 StackOverflow