通过response设置响应体
响应体设置内容
printWriter().write(String s)将字符串设置到response缓冲区,tomcat将组装成Http响应返回给浏览器端
解决设置乱码问题:response.setCharacterEncoding(String charset)设置response的编码
指定浏览器解析页面的编码方式:response.setContentType(“text/plain;charset=utf-8”)解决页面输出中文乱码问题
案例-完成文件下载
response.getOutputStream()
1.将文件从服务器端拷贝到浏览器端。所以文件下载需要IO技术将服务器端的文件使用InputStream读取到,再使用ServletOutputStream写到response缓冲区中。
2.告知浏览器文件的类型:response.setContentType(getServletContext().getMineType(文件名称))
3.告知浏览器文件的打开方式是下载:response.setHeader(“Content-Dispostion”,“attachment;filename=文件名称”);
解决浏览器兼容性问题
if (agent.contains(“MSIE”) || agent.contains(“TRIDENT”) || agent.contains(“EDGE”)) {
// IE浏览器
name = URLEncoder.encode(filename, “utf-8”);
name = filename.replace("+", “%20”);
} else if (agent.contains(“Firefox”)) {
// 火狐浏览器
BASE64Encoder base64Encoder = new BASE64Encoder();
name = “=?utf-8?B?”
+ base64Encoder.encode(filename.getBytes(“utf-8”)) + “?=”;
} else {
// 其它浏览器
name = URLEncoder.encode(filename, “utf-8”);
}