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下载文件...相关推荐

  1. java 下载db文件_Java下载文件自定义名称和格式类型

    response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...

  2. java方法的参数类型_Java 基础 14 方法的重载 与 方法参数类型详解

    1.1 方法重载的概述和特点 方法重载概述 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可. 方法重载特点 与返回值类型无关,只看方法名和参数列表 在调用时,虚拟机通 ...

  3. java 实现类转接口_JAVA 基础 / 第二十九课:接口与继承 / JAVA中的对象转型

    2018-03-19 一.明确引用类型与对象类型的概念 引用类型与对象类型的概念 在这个例子里,有一个对象 new ADHero(), 同时也有一个引用ad 对象是有类型的, 是ADHero 引用也是 ...

  4. 每天一个linux命令(文件上传下载文件操作):【转载】用SecureCRT来上传和下载文件...

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...

  5. java 运行时类型_Java基础之RTTI 运行时类型识别

    运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息. 多态(polymorphism)是基于R ...

  6. java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势

    image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...

  7. java 文件路径表达式_Java基础(二十二) Lambda表达式和File类

    函数式编程思想 强调的是做什么,而不是以什么样的方式来做,它忽略了面向对象的复杂语法,只要能够获取到结果,谁去做的,怎么做的,都不重要,重要的是结果,不重视过程. 冗余的Runnable代码 传统的写 ...

  8. java什么是原生类_Java 基础 - 原生类型

    更详细的说明,请参考: Java 原生类型与包装器类型深度剖析,https://blog.csdn.net/justloveyou_/article/details/52651211 一. 原生类型与 ...

  9. java 二进制是什么类型_Java基础类型与其二进制表示

    Java中的基础类型有:byte.short.int.long.float.double.char和boolean. 它们可被分为四种类型,整型.浮点型.char型和boolean型. 整型:byte ...

最新文章

  1. Tensorflow会话
  2. bat小工具_小程序反编译工具在windows系统下的调用脚本
  3. 简单一招搞定 three.js 屏幕适配
  4. VTK:PolyData之SelectPolyData
  5. 微信小程序自定义组件实现
  6. 让MessageBox在最前面弹出来的信息在
  7. seata分布式事务原理_又见分布式事务之Seata
  8. JavaScript面向对象编程理解
  9. 【Luogu1048】采药
  10. pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...
  11. 程序员必知3大查找(转)
  12. https://www.ptc.com/en/industry-insights/state-of-augmented-reality
  13. 2寸的照片长宽各是多少_2寸照片的高和宽是多少像素?
  14. QT软件开发-基于FFMPEG设计视频播放器-流媒体播放器(五)
  15. python(2): If/for/函数/try异常/调试/格式输出%
  16. 手机怎么设置腾达路由器后显示远端服务器,教你如何用手机快速设置腾达路由器...
  17. excel表格拆分怎么做?
  18. 网络安全——常见的几种WEB攻击:
  19. 原奶周期与伊利、蒙牛的兼并战争
  20. 如何把项目部署到腾讯云服务器(附带常见错误)

热门文章

  1. 服务器、网络、存储设备术语
  2. ts的类型any与unknown
  3. 三星联手迪肯大学测试AI老年家庭护理平台
  4. 产品设计常用链接和资源
  5. signature=31a7d54e5a7d4d0a241cc0a54dc64ebc,VS2015安装失败
  6. 北京开了好头,带了风口....
  7. Java_22 字符流与字节流(IO流)③Properties集合、编码表
  8. php开源广告系统,广告操作指南
  9. 微信JSSDK 签名错误invalid signature排查
  10. 中科燕园gis外包------北京市人口普查地理信息系统