[Java.Web][Servlet]常用请求头.断点续传
HTTP 请求头字段 Range
Range 头指示服务器只传输一部分 Web 资源。这个头可以用来实现断点续传功能。
Range 字段可以通过三种格式设置要传输的字节范围:
Range bytes=1000-2000 传输范围从 1000-2000字节。
Range bytes=1000- 传输范围从 1000字节以后的所有内容。
Range bytes=1000 传输最后 1000个字节。
HTTP 响应头字段 Accept-Ranges
Accept-Ranges: 这个字段说明 Web 服务器是否支持 Range 。支持则返回 Accept-Ranges: bytes
如果不支持,则返回 Accept-Ranges:none
Content-Ranges: 指定了返回的 Web 资源的字节范围。这个字段值的格式类似于: Content-Ranges:1000-3000/5000
URL url = new URL("http://localhost:8088/day05/range.txt");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Range", "bytes=5-"); // 从第6个字节开始的所有内容
InputStream in = conn.getInputStream();
int len = 0;
byte[] buffer = new byte[1024];
FileOutputStream outputStream = new FileOutputStream("c:\\a.txt", true);
while ((len = in.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
这段代码会将得到的结果追加到 c:\a.txt 文件中。
针对客户端的多次 Servlet 请求,服务器只会创建一个 Servlet 实例对象,直至 Web 容器退出。
在 Servlet 生命周期中,init 方法只被调用一次,而每个访问请求都会调用一次 service 方法。对于每次访问请求,Servlet 引擎都会创建一个新的 HttpServletRequest 请求对象和一个新的 HttpServletResponse 响应对象,然后将这两个对象作为参数传递给它调用的 Servlet 的 service() 方法,service 方法再根据请求方式分别调用 doGet() / doPost() 等方法。
在 web.xml 配置文件中,可以在 <servlet></servlet> 节点中添加 <load-on-startup>1</load-on-startup> 节点。
这个标记表示容器是否在启动的时候就加载这个 servlet
其中的 1 的意义:当值 >= 0 时,容器在应用启动时就加载这个 servlet
当值 < 0 或无此节点时,容器在该 servlet 被选择时才加载。正数的值越小,启动该 servlet 的优先级越高。
[Java.Web][Servlet]常用请求头.断点续传的更多相关文章
- [Java.Web][Servlet]常用请求头
response.setStatus(302); response.setHeader("location", "/day04/1.html"); 这段代码可以 ...
- [Java][Web]Request 获取请求头和数据
获取方式一 InputStream in = request.getInputStream(); int len = 0; byte buffer[] = new byte[1024]; while( ...
- Java Web Servlet知识点讲解(一)
一.Web应用架构 如图所示: HTTP协议:一个简单的请求一响应协议,通常运行在TCP之上,它指定了客户端可能发送给服务器什么样的信息以及得到什么样的响应. JDBC:Java语言中用来规范客户端程 ...
- java web 一次请求从开始到响应结束的过程
博客原文: http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html HTTP(HyperText Transfer ...
- HTTP常见响应状态码及解释、常用请求头及解释
1.HTTP常见响应状态码及解释2XX Success(成功状态码) 200 表示从客户端发来的请求在服务器端被正常处理204 该状态码表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主 ...
- Java Web Servlet知识点讲解(二)
一.定义Servlet: public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpSer ...
- 动手学servlet(三) 请求头和响应头信息
获取请求头信息 package servletdemo; import java.io.IOException; import java.util.Enumeration; import javax. ...
- JAVA记录-Servlet RequestDispatcher请求转发
RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...
- java web Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
随机推荐
- Spring警告: Could not load driverClass com.mysql.jdbc.Driver(待解决)
在一个Spring项目中,新建了一个外部属性文件db.properties,在xml文件中利用${}来引用db.properties文件里面的属性. beans-properties.xml: < ...
- TypeError: pivot_table() got an unexpected keyword argument 'rows'
利用Python进行数据分析>第二章,处理MovieLens 1M数据集,有句代码总是报错: mean_rating = data.pivot_table('rating', rows='tit ...
- Xcode9 新功能
翻译: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcod ...
- [Linux] 复制文件夹下指定创建时间的文件
暂时不知道什么命令可以达到这个目标,目前的方法是分步进行: 首先,找出指定创建时间内的文件名 例如在imgs文件夹中,找出创建时间在一天内的文件 > feb_files.txt 然后将这些文件复 ...
- PyQt: “AttributeError: 'Form' object has no attribute 'exec_'” when opening second window
# -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication , QMainWindow from PyQt5 ...
- [interview]螺旋队列问题
摘要 本文主要讲解三种螺旋队列的实现方式和打印输出: 从中心往外端顺时针旋转,记为『外螺旋队列』 从左顶点开始,绕剩下的最大圈顺时针往内旋转,记为『内螺旋队列』 从左顶点开始,之字形旋转(只能同行同列 ...
- BZOJ - 4318: OSU! (期望DP&Attention)
Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1 ...
- Codeforces 1030E 【暴力构造】
LINK 题目大意:给你n个数,你可以交换一个数的任意二进制位,问你可以选出多少区间经过操作后异或和是0 思路 充分必要条件: 区间中二进制1的个数是偶数 区间中二进制位最多的一个数的二进制个数小于等 ...
- Exception.Data 为异常添加更多调试信息
我们抛出异常是为了知道程序中目前的状态发生了错误.为了能够知道错误的详细信息便于我们将来避免产生这样的错误,我们会选用合适的异常类型,在异常中编写易于理解的 message 信息.但是有时我们需要更多 ...
- hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】
问题导读 1.说说你对集群配置的认识?2.集群配置的配置项你了解多少?3.下面内容让你对集群的配置有了什么新的认识? 目的 目的1:这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点.为 ...