网络一站式服务平台,做网站的怎么挣钱,网络营销策划书范文模板,兴山县铁路建设协调指挥部网站通过response 设置响应体#xff1a;响应体设置文本#xff1a;PrintWriter getWriter()获得字符流#xff0c;通过字符流的write(String s)方法可以将字符串设置到response 缓冲区中#xff0c;随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览 器端。关于设…通过response 设置响应体响应体设置文本PrintWriter getWriter()获得字符流通过字符流的write(String s)方法可以将字符串设置到response 缓冲区中随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览 器端。关于设置中文的乱码问题原因response缓冲区的默认编码是iso8859-1此码表中没有中文可以通过 response的setCharacterEncoding(String charset) 设置response的编码但我们发现客户端还是不能正常显示文字。原因我们将response缓冲区的编码设置成UTF-8但浏览器的默认编码是本地系统的编码因为我们都是中文系统所以客户端浏览器的默认编码是GBK我们可以手动修改浏览器的编码是UTF-8。我们还可以在代码中指定浏览器解析页面的编码方式通过response的setContentType(String type)方法指定页面解析时的编码是UTF-8。response.setContentType(text/html;charsetUTF-8);上面的代码不仅可以指定浏览器解析页面时的编码同时也内含 setCharacterEncoding的功能所以在实际开发中只要编写 response.setContentType(text/html;charsetUTF-8)就可以解决页面输出中文乱码问题。package com.oracle;import java.io.FileInputStream;import java.io.IOException;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import sun.misc.BASE64Encoder;public class DownloadServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//服务器获取文件名(文件名是中文的话获取的时候就成了乱码了)String filename request.getParameter(file);//.png//get请求中---解决文件名中文乱码问题filename new String(filename.getBytes(ISO-8859-1),UTF-8);//乱码.png//获取User-Agent获取客户端浏览器到底是哪个浏览器String agentrequest.getHeader(User-Agent);String filenameEncoder;if (agent.contains(MSIE)) {// IE浏览器filenameEncoder URLEncoder.encode(filename, utf-8);filenameEncoder filenameEncoder.replace(, );} else if (agent.contains(Firefox)) {// 火狐浏览器BASE64Encoder base64Encoder new BASE64Encoder();filenameEncoder ?utf-8?B? base64Encoder.encode(filename.getBytes(utf-8)) ?;} else {// 其它浏览器filenameEncoder URLEncoder.encode(filename, utf-8);}//告知浏览器文件的类型(响应体)response.setContentType(getServletContext().getMimeType(filename));//告知浏览器以附件的方式提供下载功能 而不是解析response.setHeader(Content-Disposition,attachment;filenamefilenameEncoder);//服务器获取后开始进行复制的程序获取字节输出流ServletOutputStream sos response.getOutputStream();//获取数据源的绝对路径String realpath getServletContext().getRealPath(download/filename);//获取字节输入流FileInputStream fis new FileInputStream(realpath);//开始复制byte[] bytesnew byte[1024];int len0;while((lenfis.read(bytes))!-1){sos.write(bytes, 0, len);}//释放资源fis.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}pageEncodingUTF-8%Insert title herea.txta.wmv科比.pnga.zip以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。