您的位置:首页 > 其它

学习总结之 Servlet入门知识 处理Response

2014-05-14 23:48 429 查看
package cn.itcast.response;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

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

/**
* Servlet implementation class TestResponse
*/
public class TestResponse extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
/*
* response.setHeader(name, value); response.setDateHeader(name, date);
* response.setIntHeader(name, value);
*/

/************************ 【请求重定向】 *******************************/

// 第一种
response.setHeader("location", "/day05/location.html");// 设置响应头
response.setStatus(302);// 设置状态码
// 第二种
response.sendRedirect("/day05/location.html");
// 这个方法和上面两个步骤是等价的!通常我们直接使用这个方法来做请求重定向

/************************ 【请求转发】 *******************************/

RequestDispatcher dispatcher = request
.getRequestDispatcher("/testForward2.do");
dispatcher.forward(request, response);
/*
* 请求转发的相对URL,以/开头,这个/是相对于当前web应用的根目录;
* 请求重定向的相对URL,以/开头,这个/是相对于tomcat的web站点的根目录。
*/

/*********************** 【定时刷新页面】 *********************************/
response.setHeader("refresh", "3;url=/day05/refresh.html");// 以s为单位

/********************* 【设置输出的内容类型】 *****************************/

// 设置服务器输出的内容类型以及编码格式
response.setHeader("content-Type", "text/html;charset=utf-8");

// 等价于上面的写法,通常会用这个方法
response.setContentType("text/html;charset=utf-8");

/*
* 内容类型: text/html text/css, image/jpeg , image/gif , image/png
*/

/**************** 【案例: 以下载的方式下载图片】 ***********************/

File file = new File("e:/b1234.jpg");

response.setContentType("image/jpeg");

// 1设置这个响应头来告诉浏览器以下载的方式打开文件
response.setHeader("Content-Disposition",
"attachment;filename=" + file.getName());
InputStream is = new FileInputStream(file);

// 2、将图片输出到浏览器端
OutputStream out = response.getOutputStream();
for (int b = -1; (b = is.read()) != -1;) {
out.write(b);
}

}
}


package cn.itcast.request;
//重写getLastModified
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestCache extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

// 把当前系统的日期按照这个格式(yyyy-MM-dd hh:mm:ss)转成字符串格式
String dateStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")
.format(new Date());

response.getWriter().write(
"<html><h2 style='color:red'>" + dateStr + "</h2></html>");
}

// 服务器资源的最后修改时间
long lastModified = System.currentTimeMillis();

@Override
protected long getLastModified(HttpServletRequest req) {
// 需求:服务器每10秒钟发送新内容给浏览器

// 当前时间
long current = System.currentTimeMillis();

// 如果当前时间 比 服务器资源的的最后修改时间 晚10秒
if (((current - lastModified) / 1000) >= 10) {
lastModified = current;
}

return lastModified;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: