重定向,改变地址栏,用于购物栏
response.sendRedirect("/day06/index.jsp");
简单一练
package com.jingtian.controller;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//在servlet用getOutputStream输出中文问题
public class Out extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response)
throws ServletException, IOException {
test1(response);
}
private void test1(HttpServletResponse response) throws IOException,
UnsupportedEncodingException {
String data="中国 ";
response.setHeader("Content-type", "text/html;charset=UTF-8");
OutputStream out=response.getOutputStream();
out.write(data.getBytes("UTF-8"));//字符转化成码表的时候查字节
}
}
<pre class="java" name="code">package cn.itcast.response;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//在servlet用getOutputStream输出中文问题
public class ResponseDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response)
throws ServletException, IOException {
test2(response);
}
private void test2(HttpServletResponse response) throws IOException,
UnsupportedEncodingException {
String data="中国2 ";
//html: <meta>标签模拟一个http响应头
OutputStream out=response.getOutputStream();
//out.write(data.getBytes());
out.write("<meta http-equiv='content-type' content='text/html;charset=UTF-8'>".getBytes());
out.write(data.getBytes("UTF-8"));
}
private void test1(HttpServletResponse response) throws IOException,
UnsupportedEncodingException {
String data="中国 ";
//程序以什么码表输出,一定要控制浏览器以什么码表打开
response.setHeader("Content-type", "text/html;charset=UTF-8");
OutputStream out=response.getOutputStream();
//out.write(data.getBytes());
out.write(data.getBytes("UTF-8"));//字符转化成码表的时候查字节
}
}
</pre>
<br />
打印流,不常用
package cn.itcast.response;
//通过response的write流输出文字数据,不能输出电影等二进制流
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//在servlet用getOutputStream输出中文问题
public class ResponseDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response)
throws ServletException, IOException {
test1(response);
}
private void test2(HttpServletResponse response) throws IOException {
String data="中国q";
//该句代码等价于其后面两句
response.setContentType("text/html;charset=GB2312");
//response.setCharacterEncoding("GB2312");
//response.setHeader("Content-type", "text/html;charset=ISO-8859-1");
PrintWriter out=response.getWriter();
out.write(data);//
}
private void test1(HttpServletResponse response) throws IOException {
String data="中国q";
//设置response使用的码表,以控制response以什么码表向浏览器输入数据,默认为ISO-8859-1
response.setCharacterEncoding("GB2312");
//指定浏览器以什么码表打开服务器发送的数据
response.setHeader("Content-type", "text/html;charset=GB2312");
PrintWriter out=response.getWriter();
out.write(data);//
}
}
文件下载
package cn.itcast.response;
//通过response实现文件下载
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
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 ResponseDemo3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response)
throws ServletException, IOException {
test1(response);
}
private void test2(HttpServletResponse response)
throws FileNotFoundException, IOException {
String path=this.getServletContext().getRealPath("/download/新图片.jpg");
//C:\apache-tomcat-7.0.22\webapps\day06\download\新图片.jsp
String filename=path.substring(path.lastIndexOf("\\")+1);
InputStream in=null;
OutputStream out=null;
//如果下载文件是中文文件,则文件名需要经过url编码
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(filename,"UTF-8"));
try {
in=new FileInputStream(path);
int len=0;
byte buffer[]=new byte[1024];
out=response.getOutputStream();
while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
}finally{
if(in!=null){
try{
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
private void test1(HttpServletResponse response)
throws FileNotFoundException, IOException {
String path=this.getServletContext().getRealPath("/download/new.jpg");
//C:\apache-tomcat-7.0.22\webapps\day06\download\new.jsp
String filename=path.substring(path.lastIndexOf("\\")+1);
InputStream in=null;
OutputStream out=null;
response.setHeader("content-disposition", "attachment;filename="+filename);
try {
in=new FileInputStream(path);
int len=0;
byte buffer[]=new byte[1024];
out=response.getOutputStream();
while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
}finally{
if(in!=null){
try{
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
控制浏览器定时刷新
package cn.itcast.response;
//定时刷新
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseDemo5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
test3(request,response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void test3(HttpServletRequest request,HttpServletResponse response) throws IOException, Exception {
String message="<meta http-equiv='refresh' content='3;url=/day06/index.jsp'>登录成功,将在3秒后跳转,如果没有,请点<a href=''>超链接</a>";
request.setAttribute("message",message);
this.getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
}
private void test2(HttpServletResponse response) throws IOException {
response.setHeader("refresh", "3;url='/day06/index.jsp'");
String data = new Random().nextInt(100000)+"";
response.getWriter().write("登录成功,将在3秒后跳转,如果没有,请点<a href=''>超链接</a>");
}
private void test1(HttpServletResponse response) throws IOException {
response.setHeader("refresh", "3");
String data = new Random().nextInt(100000)+"";
response.getWriter().write(data);
}
}
浏览器缓存
package cn.itcast.response;
//浏览器缓存
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseDemo6 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data="aaaaa";
response.setDateHeader("expires", System.currentTimeMillis()+3600*1000);
response.getWriter().write(data);
}
}
重定向
package cn.itcast.response;
//重定向
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseDemo7 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setStatus(302);
response.setHeader("location", "/day06/index.jsp");
response.sendRedirect("/day06/index.jsp");
}
}