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>