原创

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 标签用于网页的<head>与</head>中 ,具体案例如下:

<meta name="Generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等;

<meta name="KEYWords" contect="">向搜索引擎说明网页的关键词; 

<meta name="DEscription" contect="">告诉搜索引擎站点的主要内容; 

<meta name="Author" contect="你的姓名">告诉搜索引擎站点的制作的作者; 

<meta name="Robots" contect= "all|none|index|noindex|follow|nofollow"> 

其中的属性说明如下: 

设定为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+"");


Java下载文件自定义名称和格式类型,具体代码如下:

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"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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">
	
	<servlet>
		<servlet-name>JavaDownloadRequest</servlet-name>
		<servlet-class>com.yoodb.JavaDownloadRequest</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>JavaDownloadRequest</servlet-name>
		<url-pattern>*.shtml</url-pattern>
	</servlet-mapping>

</web-app>

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

相关推荐

评论

分享:

支付宝

微信