优秀的编程知识分享平台

网站首页 > 技术文章 正文

Java基础之文件下载实现自定义名称和格式类型

nanyue 2024-07-18 22:05:01 技术文章 6 ℃

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

项目中新建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"?>

<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>

最近发表
标签列表