java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...
response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式。参考数据如下:
response.setContentType("text/html; charset=utf-8"); //html页面
.setContentType("text/plain; charset=utf-8"); //文本
response.setContentType("text/javascript; charset=utf-8"); //json数据
response.setContentType("application/xml; charset=utf-8"); //xml数据
response.setHeader() 是用来设置返回页面的头 meta 信息, 使用时 response.setHeader( name, contect); meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的
与中 ,具体案例如下:
用以说明生成工具(如Microsoft FrontPage 4.0)等;
向搜索引擎说明网页的关键词;
告诉搜索引擎站点的主要内容;
告诉搜索引擎站点的制作的作者;
其中的属性说明如下:
设定为all:文件将被检索,且页面上的链接可以被查询;
设定为none:文件将不被检索,且页面上的链接不可以被查询;
设定为index:文件将被检索;
设定为follow:页面上的链接可以被查询;
设定为noindex:文件将不被检索,但页面上的链接可以被查询;
设定为nofollow:文件将不被检索,页面上的链接可以被查询。
禁用缓存:
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
设置过期的时间期限
response.setDateHeader("Expires", System.currentTimeMillis()+自己设置的时间期限);
访问页面
response.setStatus(302); response.setHeader("location","url");
通知浏览器数据采用的压缩格式
response.setHeader("Content-Encoding","压缩后的数据");
高速浏览器压缩数据的长度
response.setHeader("Content-Length",压缩后的数据.length+"");
项目中新建servlet类继承HttpServlet,具体代码图:
代码图
为了方便大家敲代码时间,分享代码内容如下:package com.yoodb;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JavaDownloadRequest extends HttpServlet {
private static final long serialVersionUID = -2856808600378096527L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
PrintWriter sout = response.getWriter();
String fileName = request.getParameter("fileName");
if(fileName.contains("crt")){
response.setContentType("application/pkix-cert");
}else if(fileName.contains("p12")){
response.setContentType("application/x-pkcs12");
}
response.setHeader("Content-Disposition", "attachment; filename="+fileName);
BINUtils.showBIN(ReadConfig.certPath + fileName, sout);
}
}
web.xml文件配置如下:<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
JavaDownloadRequest
com.yoodb.JavaDownloadRequest
JavaDownloadRequest
*.shtml
java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...相关推荐
- java 下载db文件_Java下载文件自定义名称和格式类型
response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...
- java方法的参数类型_Java 基础 14 方法的重载 与 方法参数类型详解
1.1 方法重载的概述和特点 方法重载概述 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可. 方法重载特点 与返回值类型无关,只看方法名和参数列表 在调用时,虚拟机通 ...
- java 实现类转接口_JAVA 基础 / 第二十九课:接口与继承 / JAVA中的对象转型
2018-03-19 一.明确引用类型与对象类型的概念 引用类型与对象类型的概念 在这个例子里,有一个对象 new ADHero(), 同时也有一个引用ad 对象是有类型的, 是ADHero 引用也是 ...
- 每天一个linux命令(文件上传下载文件操作):【转载】用SecureCRT来上传和下载文件...
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- java 运行时类型_Java基础之RTTI 运行时类型识别
运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息. 多态(polymorphism)是基于R ...
- java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势
image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...
- java 文件路径表达式_Java基础(二十二) Lambda表达式和File类
函数式编程思想 强调的是做什么,而不是以什么样的方式来做,它忽略了面向对象的复杂语法,只要能够获取到结果,谁去做的,怎么做的,都不重要,重要的是结果,不重视过程. 冗余的Runnable代码 传统的写 ...
- java什么是原生类_Java 基础 - 原生类型
更详细的说明,请参考: Java 原生类型与包装器类型深度剖析,https://blog.csdn.net/justloveyou_/article/details/52651211 一. 原生类型与 ...
- java 二进制是什么类型_Java基础类型与其二进制表示
Java中的基础类型有:byte.short.int.long.float.double.char和boolean. 它们可被分为四种类型,整型.浮点型.char型和boolean型. 整型:byte ...
最新文章
- Tensorflow会话
- bat小工具_小程序反编译工具在windows系统下的调用脚本
- 简单一招搞定 three.js 屏幕适配
- VTK:PolyData之SelectPolyData
- 微信小程序自定义组件实现
- 让MessageBox在最前面弹出来的信息在
- seata分布式事务原理_又见分布式事务之Seata
- JavaScript面向对象编程理解
- 【Luogu1048】采药
- pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...
- 程序员必知3大查找(转)
- https://www.ptc.com/en/industry-insights/state-of-augmented-reality
- 2寸的照片长宽各是多少_2寸照片的高和宽是多少像素?
- QT软件开发-基于FFMPEG设计视频播放器-流媒体播放器(五)
- python(2): If/for/函数/try异常/调试/格式输出%
- 手机怎么设置腾达路由器后显示远端服务器,教你如何用手机快速设置腾达路由器...
- excel表格拆分怎么做?
- 网络安全——常见的几种WEB攻击:
- 原奶周期与伊利、蒙牛的兼并战争
- 如何把项目部署到腾讯云服务器(附带常见错误)
热门文章
- 服务器、网络、存储设备术语
- ts的类型any与unknown
- 三星联手迪肯大学测试AI老年家庭护理平台
- 产品设计常用链接和资源
- signature=31a7d54e5a7d4d0a241cc0a54dc64ebc,VS2015安装失败
- 北京开了好头,带了风口....
- Java_22 字符流与字节流(IO流)③Properties集合、编码表
- php开源广告系统,广告操作指南
- 微信JSSDK 签名错误invalid signature排查
- 中科燕园gis外包------北京市人口普查地理信息系统