头文件

告诉浏览器使用什么编码

import java.io.IOException;
import java.io.OutputStream;
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 httpServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//告诉浏览器使用什么编码
		response.setHeader("content-type", "text/html;charset=UTF-8");  //设置头消息的过程,中间的分号写成逗号就是下载格式
		String value = "中国";
		OutputStream out = response.getOutputStream();
		out.write(value.getBytes("UTF-8"));  //默认使用的都是gb2312,如果这里指定事情其他编码就要设置头消息来告诉浏览器
					//这里传递的一定是由字符串转化为字节,如果传递一个整数1肯定是错误的
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}

}


告诉浏览器发过去的是什么格式的数据

告诉浏览器这是要下载的数据

package download;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class download extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//response.setHeader("image", "jpeg");   //设置好头消息,告诉浏览器要发过去的这些数据是图片
		String path = this.getServletContext().getRealPath("/downLoad/图片.png");
		String fileName = path.substring(path.lastIndexOf("\\")+1);  //从后面以斜杠为标志获取最后的文件名
		//response.setHeader("content-disposition", "attachment;filename="+fileName);	//设置头消息,告诉浏览器是以下载的方式打开。。。
		//如果名称是中文的,就要对名称进行编码。。。
		response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName,"UTF-8"));
		OutputStream out = null;
		InputStream in = null;
		System.out.println(path);		//下载方式其实也就是流之间数据的传递。。。
		System.out.println(fileName);
			in = new FileInputStream(path);
			int len = 0;
			byte[] buffer = new byte[1024];
			out = response.getOutputStream();
			while ((len = in.read(buffer)) > 0) {  //记得把数组带进read里面。。。
				out.write(buffer, 0, len);
			}
			in.close();

		
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}

}


expires告诉浏览器数据要缓存多久

package expires;

import java.io.IOException;
import java.io.OutputStream;
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 expires extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		response.setDateHeader("expires", System.currentTimeMillis()+1000*3600);
		//设置的是日期消息头,一千代表一秒,所以缓存时间是一小时,加上前面的意义是以现在为基础加上一个小时,一定要加上去。。。
		String str = "aaaaaaaa";
		OutputStream out = response.getOutputStream();
		out.write(str.getBytes());
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}

}



你可能感兴趣的:(头文件)