javaweb入门(5)-- 详细了解http协议3
2013-04-02 22:04
399 查看
由于javaweb开发需要详细了解http协议中http响应的相关知识,所以,通过以下实例,对/article/8548796.html所描述的http响应头的作用进行深入学习。
1、用location响应头进行浏览器重定向。
新建web工程httptest,并新建一个servlet,内容如下:
重定向的过程:浏览器向服务器请求资源,服务器反馈数据告诉浏览器要重定向至另一个地址,浏览器向新地址发起新的请求,所在资源服务器反回用户所请求的数据。
2、用content-type响应头告诉浏览器以图片的形式打开接收到的数据。
在项目的WebRoot新建images目录并放入一张图片。
可以看到浏览器将以图片的形式显示图片数据。
3、refresh响应头实现浏览器定时刷新。
4、用content-disposition响应头来控制浏览器以下载的方式打开数据。
以第2个实例的图片为例,用content-disposition响应头告诉浏览器以下载的方式下载这张图片。
1、用location响应头进行浏览器重定向。
新建web工程httptest,并新建一个servlet,内容如下:
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HttpTestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 302状态码与location合用,实现重定向功能 response.setStatus(302); response.setHeader("location", "http://www.baidu.com"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }将工程部署到tomcat服务器中,访问:打开浏览器访问http://localhost:8080/httptest/Servlet/HttpTestServlet
重定向的过程:浏览器向服务器请求资源,服务器反馈数据告诉浏览器要重定向至另一个地址,浏览器向新地址发起新的请求,所在资源服务器反回用户所请求的数据。
2、用content-type响应头告诉浏览器以图片的形式打开接收到的数据。
在项目的WebRoot新建images目录并放入一张图片。
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HttpTestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("content-type", "image/jpeg"); // 获取向浏览器输出数据的输出流 OutputStream out = response.getOutputStream(); // 读取图片文件,写入到out中 InputStream inStream = this.getServletContext().getResourceAsStream("/images/java.jpg"); byte[] buf = new byte[1024]; int len = 0; while ((len = inStream.read(buf)) != -1) { out.write(buf, 0, len); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }将工程部署到tomcat服务器中,访问:打开浏览器访问http://localhost:8080/httptest/Servlet/HttpTestServlet
可以看到浏览器将以图片的形式显示图片数据。
3、refresh响应头实现浏览器定时刷新。
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HttpTestServlet extends HttpServlet { int i= 0 ; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-type", "text/html;charset=utf-8"); //使用refresh响应头实现自动刷新 response.setHeader("refresh", "3"); //response.setHeader("refresh", "3;url=http://www.baidu.com"); //3s后刷新到百度 i++; response.getOutputStream().write(("您第"+i+"次访问").getBytes("utf-8")); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
4、用content-disposition响应头来控制浏览器以下载的方式打开数据。
以第2个实例的图片为例,用content-disposition响应头告诉浏览器以下载的方式下载这张图片。
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HttpTestServlet extends HttpServlet { int i = 0; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("content-disposition", "attachment;filename=java.jpg"); InputStream inStream = this.getServletContext().getResourceAsStream( "/images/java.jpg"); OutputStream out = response.getOutputStream(); byte[] buf = new byte[1024]; int len = 0; while ((len = inStream.read(buf)) != -1) { out.write(buf, 0, len); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
相关文章推荐
- javaweb入门(3)-- 详细了解http协议1
- javaweb入门(4)-- 详细了解http协议2
- javaweb入门(4)-- 详细了解http协议2
- JavaWeb之开发入门web了解、tomcat安装配置
- requests库入门-2-简单了解HTTP协议
- javaweb开发入门-http协议
- 了解Hibernate概念(附入门例子详细解释)
- ZZ:使用.NET语言开发Silverlight应用程序入门(一):了解项目结构
- Android零基础入门第31节:几乎不用但要了解的AbsoluteLayout绝对布局
- 新手入门:了解网络应用与网络协议
- [WebGL入门]二,开始WebGL之前,先了解一下canvas
- Expression Bland 入门视频(五) 了解对象面板和属性面板
- 新手入门:了解邮件服务与相关协议
- Spark入门2-了解RDD
- VS2010安装MSDN出错:“未能在指定文件夹中创建本地存储区,请选择其他位置。可以检查事件日志以了解详细信息”
- Android-个人心得:超详细的JNI(NDK)入门与使用
- Java操作PDF之iText详细入门
- 你了解HTTP协议吗??
- IP地址详细了解(1)
- gulp详细入门教程