标签:mic 兼容 服务器 编码方式 ase 出现 image 一个 utf-8
先创建一个文件夹叫download
然后在文件里创建几个例子文件

然后这个文件夹复制到你的Webcontion下去

然后在Webcontion上创建一个jsp,叫download

除了能在标签种能设置post请求以外的所有的标签都是get请求,就是不能设置post请求的标签都是get请求
所以a标签就是个get请求
因为是get请求所以这个filename就是所带的参数 让他服务器知道顾客点的是那个 所给出相应的资源

然后在src下创建一个包叫com.oracle.demo01在创建一个Servlet叫DownloadServlet

然后在jsp写

重启服务器显示出
a.png

a.txt

是乱码
a.wmv和a.rar都是直接下载


游览器能解析的就直接打开 不能解析的就提供下载
上述代码可以将图片从服务器端传输到浏览器,但浏览器直接解析图片显示在页面上, 而不是提供下载,我们需要设置两个响应头,告知浏览器文件的类型和文件的打开方 式。
1)告知浏览器文件的类型:response.setContentType(文件的MIME类型);
2)告示浏览器文件的打开方式是下载:
response.setHeader("Content-Disposition","attachment;filename=文件名称");

写完后重启服务器显示:




然后在做一个实例
右键你的图片改成中文名字

然后之前jsp的也改成小狗

改完后再重启服务器测试发现

这样的话下载是没有问题的,但是因为码表的问题中文乱码所以名字不显示,为了改正这种情况
但是,如果下载中文文件,页面在下载时会出现中文乱码或不能显示文件名的情况, 原因是不同的浏览器默认对下载文件的编码方式不同,ie是UTF-8编码方式,而火狐 浏览器是Base64编码方式。所里这里需要解决浏览器兼容性问题,解决浏览器兼容 性问题的首要任务是要辨别访问者是ie还是火狐(其他),通过Http请求体中的一 个属性可以辨别

解决乱码方法如下(不要记忆--了解):
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");
}
其中agent就是请求头User-Agent的值
代码如下

运行结果:

一次性验证码

解压到

把CheckImgServlet复制到src里的demo01下 在把包名改了


在把new_words复制到WEB-INF下

在设置你的web-xml

运行出现

标签:mic 兼容 服务器 编码方式 ase 出现 image 一个 utf-8
原文地址:https://www.cnblogs.com/www1842564021/p/12361479.html