位置: IT常识 - 正文

Servlet4.0 Response

编辑:rootadmin
Servlet4.0 Response对象Response对象封装Server返回Client的所有信息。在HTTP协议中,Server传达给Client信息转换到HTTP Header或者HTTP BODY中。5.1 Buffering缓冲区Serverlet Container可以但不强制缓冲发 ...

推荐整理分享Servlet4.0 Response,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

Servlet4.0 Response对象

Response对象封装Server返回Client的所有信息。在HTTP协议中,Server传达给Client信息转换到HTTP Header或者HTTP BODY中。

5.1 Buffering缓冲区

Serverlet Container可以但不强制缓冲发送给客户端的内容。默认得,Servlet Container会开放接口设置缓冲区。如ServletResponse对象的方法可以设置缓冲区:

getBufferSizesetBufferSizeisCommittedresetresetBufferflushBuffer

当Servlet Container使用ServletOutputStream或者Write时,可以使用这些方法配置缓冲区。

getBufferSize返回缓冲区大小,若没有缓冲区,则返回0。

setBufferSize servlet可以使用该方法设置缓冲区大小。

申请的大小可以不是servlet请求的大小,但是至少要是请求的大小。这样,容器才能重使用该缓冲区,也能够提供足够的缓冲区。该方法需要在Servlet Container使用ServletOutputStream或者是Writer输出响应之前调用。

isCommitted方法表示内容是否已经响应给客户端。

flushBuffer方法强制将缓冲区数据输出至客户端。

reset方法强制清空缓冲区的数据若内容未提交至客户端。

resetBuffer方法强制清空缓冲区的数据但不包括请求头和响应码若内容未提交至客户端。

若内容已经输出至客户端,调用reset方法或resetBuffer方法都会抛出异常。但是不会改变缓冲区内容。

若缓冲区已经满需要立即输出响应内容给客户端。

5.2 HTTP响应头

Servlet可以通过ServletResponse接口的方法设置HTTP响应头。方法如下:

setHeaderaddHeader

setHeader使用指定的名称替换已经存在的值,若header的值是集合,则集合的值被清空,使用新值替换。

Servlet4.0 Response

addHeader添加指定名称的值到集合,该名称未存在,则会创建新集合。

若header的值是int类型或Date类型,则ServletResponse接口提供下述方法:

setIntHeadersetDateHeaderaddIntHeadersetIntHeader

HTTP响应头需要比响应体输出至客户端,若响应体已经输出再输出响应头,Servlet Container会忽略响应头。

对于Servlet生成的内容Servlet 编程者有义务设置Content-Type。HTTP/1.1不要求必须设置Content-Type请求头。

推荐Servlet Container 使用X-Powerd-By请求头发布自身的实现。

这个请求头的值起码是一个以上。如"Servlet/4.0"。

5.3 HTTP Trailer 预告

HTTP Trailer是发送在响应体之后的响应头集合。适用于chunked编码发送的场景或者是其他额外的协议。

如果HTTP Trailer 请求头已经就绪则调用isTrailerFieldsReady()方法会返回true。

servlet可以通过HttpServletRequest接口的getTrailerFields()方法读取 Trailer 请求头。

servlet可以输出HTTP Trailer头通过提供Supplier给HttpServletResponse接口提供的setTrailerFields()方法。也可以通过提供的Supplier使用HttpServletResponse接口的getTrailerFields()方法获取HTTP Trailer请求头。

5.4 非阻塞IO

非阻塞IO只能在异步处理请求中使用。否则ServletInputStream.setReadListener和ServletOutputStream.setWriteListener调用时,需要抛出IllegalStateException异常。

为了支持在Web 容器支持非阻塞写,引入如下改变:

WriteListener提供下述回调方法:

void onWritePossible() 当WriteListener注册到ServletOutputStream

后,当ServletOutputStream能写时会第一次调用WriteListener.onWritePossible()方法。

只有当ServletOutputStream.isReady()方法返回true才会调用WriteListener.onWritePossible()方法。

onError(Throwable t)处理响应失败时会调用该方法。

伴随着WriteListener还有ServletOutputStream的其他方法帮助WebApplication判断是否准备好写内容至客户端。

boolean isReady()如果写ServletOutputStream成功则会返回true。如果这个方法返回true,则ServletOutputStream写操作可以继续完成。若没有后续内容需要写,则该方法返回false。void setWriteListener(WriteListener listener) 关联WriteListener和ServletOutputStream。当可以写入数据时容器会调用WriteListener的方法。

注册的WriteListener会开始非阻塞IO,此时禁止转为阻塞IO。Servlet Container需要保证WriteListener的线程安全

5.5 Response对象的生命周期

每个Response对象都只能在service或者doFilter方法中生效,异步处理请求除外。

异步处理请求情况下,Response对象一直有效直到Servlet Container 调用AsyncContext.complete方法后。Servlet Container会回收Response对象为了提供性能,

研发需要明白,在这些作用域外引用Response对象都会引发未知错误。

本文链接地址:https://www.jiuchutong.com/zhishi/311536.html 转载请保留说明!

上一篇:没有实收资本的公司开立账套如何建立银行存款分录?(没有实收资本的股权原值)

下一篇:phpcms首页模板是哪个文件(phpcms 用的是什么模板引擎)

  • Redmi K30 Pro支持哪些NFC功能(redmik30pro支持多少w快充)

    Redmi K30 Pro支持哪些NFC功能(redmik30pro支持多少w快充)

  • 苹果se如何设置来电闪光灯(苹果se如何设置门禁卡)

    苹果se如何设置来电闪光灯(苹果se如何设置门禁卡)

  • 雄迈摄像头恢复出厂设置(雄迈摄像头恢复出厂设置后还是原来)

    雄迈摄像头恢复出厂设置(雄迈摄像头恢复出厂设置后还是原来)

  • airpods2声音断断续续(airpods 声音断续)

    airpods2声音断断续续(airpods 声音断续)

  • 优酷视频会员怎么分享给别人(优酷视频会员怎么分享给别人用)

    优酷视频会员怎么分享给别人(优酷视频会员怎么分享给别人用)

  • 华为p40前置摄像头模糊(华为p40前置摄像头模糊怎么调)

    华为p40前置摄像头模糊(华为p40前置摄像头模糊怎么调)

  • 电脑内存不足买什么盘(电脑内存不足买什么来储存)

    电脑内存不足买什么盘(电脑内存不足买什么来储存)

  • 5g将建立一个具有什么特点的平台(打造5g)

    5g将建立一个具有什么特点的平台(打造5g)

  • 电话交换系统采用的是什么交换技术(电话交换系统由哪三部分组成)

    电话交换系统采用的是什么交换技术(电话交换系统由哪三部分组成)

  • 苹果6喇叭声音突然变小(苹果6喇叭声音小)

    苹果6喇叭声音突然变小(苹果6喇叭声音小)

  • 支付宝收款声音怎么调大(支付宝收款声音时有时无是什么原因?)

    支付宝收款声音怎么调大(支付宝收款声音时有时无是什么原因?)

  • 手机后盖碎了有影响吗(手机后盖碎了有危险吗)

    手机后盖碎了有影响吗(手机后盖碎了有危险吗)

  • 充q币充错账号怎么办(充q币充错账号怎么退)

    充q币充错账号怎么办(充q币充错账号怎么退)

  • 小米手环3心率检测准吗(小米手环3心率测不了)

    小米手环3心率检测准吗(小米手环3心率测不了)

  • 快手推广审核多长时间(快手推广有效果审核时间长吗)

    快手推广审核多长时间(快手推广有效果审核时间长吗)

  • iphone6s怎么截图(iphone6s怎样截图)

    iphone6s怎么截图(iphone6s怎样截图)

  • 华为mate30如何截屏(华为Mate30如何截长屏)

    华为mate30如何截屏(华为Mate30如何截长屏)

  • 朋友圈一天能删多少条(朋友圈一天可以删多少条)

    朋友圈一天能删多少条(朋友圈一天可以删多少条)

  • 淘宝号违规行为会消除吗(淘宝违规行为有几大类)

    淘宝号违规行为会消除吗(淘宝违规行为有几大类)

  • 怎样使用网上银行为支付宝账户充值(怎样使用网上银行)

    怎样使用网上银行为支付宝账户充值(怎样使用网上银行)

  • 美版xsmax支持双卡吗(xsmax美版双卡双待怎么用)

    美版xsmax支持双卡吗(xsmax美版双卡双待怎么用)

  • 拍视频用什么设备(拍视频用什么设备才高清晰)

    拍视频用什么设备(拍视频用什么设备才高清晰)

  • Win10如何降低版本 win10系统退回更新前版本的方法(降低win10版本)

    Win10如何降低版本 win10系统退回更新前版本的方法(降低win10版本)

  • aelaunch.exe进程安全吗 aelaunch是病毒进程吗(ae应用程序无法启动)

    aelaunch.exe进程安全吗 aelaunch是病毒进程吗(ae应用程序无法启动)

  • chmem命令  设置内存(设置cmd命令)

    chmem命令 设置内存(设置cmd命令)

  • python继承的多种类型(python继承例子)

    python继承的多种类型(python继承例子)

  • Java——多线程:Lamda表达式(java多线程经典案例)

    Java——多线程:Lamda表达式(java多线程经典案例)

  • 外购的商品用于生产
  • 发票税率开错了3%开成5%怎么办
  • 电子税务局发票验旧怎么操作
  • 跨年度项目预算怎么安排
  • 收到厂家给医药的短信
  • 汇算清缴前发票未到
  • 土地转让增值税计税依据
  • 三证合一后还要去税务局吗
  • 资本公积可以怎么处理掉
  • 发票上电话可以写手机号吗
  • 财务费用负数是什么意思
  • 建筑单位的工作岗位有哪些
  • 进项税额忘了抵扣
  • 资本化利息金额
  • 房屋租赁发票需要什么资料
  • 土地使用权评估中的成本法
  • 常见的电脑病毒危害
  • win10平板模式不好用
  • 劳务公司的账务怎么做账
  • 本期用于购建不动产的扣税凭证怎么填
  • 公司开承兑出去 利息怎么算
  • window10发现威胁怎么办
  • 做胃镜多少钱了
  • 公司整体收购如何交税
  • 出售应收债权属于收入吗
  • 电脑文件删除如何找到
  • 特许权使用费啥意思
  • 增值税专用发票怎么开
  • php输出对象
  • 餐饮发票可以计入福利费吗
  • 后端三件套
  • 特征提取原理
  • php使用oci8扩展连接oracle
  • javascriptjs
  • mysql一次io
  • 百度 编辑器
  • 发票超额怎么办
  • 小规模纳税人开票限额是多少
  • 理财产品怎么分类总结
  • mysql中文乱码解决
  • 法人向公司账户打款
  • 无票收入要交企业所得税吗
  • 小规模纳税人附加税怎么算
  • 提取法定盈余公积会影响留存收益吗
  • 增值税少企业所得税高吗
  • 利息收入应该怎么记账
  • 客户提现产生的费用计入
  • 为在建工程发生的差旅费
  • 利息支出税前扣除时点
  • 收到的专项资金怎么入账
  • 哪些单位需要缴纳残疾人保障金
  • 加计扣除怎么申报
  • ubuntu右键菜单
  • openwrt 路由配置梯子
  • linux系统中怎么输入中文
  • compaq-rba.exe是哪个方面的进程 作用是什么 compaq-rba进程查询
  • win10专业版怎么安装
  • centos必学的60个命令
  • redhat本地yum配置的基本步骤
  • linux doc
  • bzip2 bunzip2 bzcat参数使用
  • win7系统开机后很卡什么原因
  • jQuery实现CheckBox全选、全不选功能
  • 用python画一棵树
  • unity3d documentation
  • js中split方法的作用
  • 注释讲解
  • 基于jquery的移动端ui框架
  • window运行怎么打开
  • android 设置竖屏
  • bootstrap js插件
  • 江苏省地方税务局网上办税
  • 国家税务局2017年11号
  • 重庆税务信息采集如何操作
  • 税收征管工作的基本目标
  • 上海微电子现状
  • 什么是重点群体
  • 什么是党建工作一体化
  • 土地面积测量
  • 车辆检测费属于什么科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设