Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
Sun向JCP提交Servlet3.0规范—JSR 315
07-06-26
yangtao309
Sun 已经向JCP(Java Community Process)提交了Servlet3.0规范——JSR 315(Java Specification Request)。其高级目标包括可插拔web框架、EoD(ease of development——易于开发)特征、支持
异步
和Comet、安全、与其他规范结合、以及其它各项改进。它准备包含在Java EE 6中,Java EE 6的最终版大约于2008第4季度发布。预计不出2007年7月2日就会出评论。
以下是这些目标的详细版本:
可插拔的Web框架
几乎所有基于Java的web框架都建立在servlet之上。现今大多数web框架要么通过servlet、要么通过Web.xml插入。利用标注(Annotation)来定义servlet、listener、filter将使之(可插拔)成为可能。程序访问web.xml和动态改变web应用配置是所期望的特性。该JSR将致力于提供把不同web框架无缝地插入到web应用的能力。
EOD
标注——利用标注来作为编程的声明风格。
web应用零配置是EoD努力方向之一。部署描述符将被用来覆盖配置。
范型(generic)——在API中尽可能利用范型。
使用其它语言增强可能需要改善API可用性的地方。
支持异步和Comet
非阻塞输入——从客户端接收数据,即使数据到达缓慢也不会发生阻塞。
非阻塞输出——发送数据到客户端,即使客户端或网络很慢也不会发生阻塞。
延迟请求处理——Ajax web应用的Comet风格,可以要求一个请求处理被延迟,直到超时或一个事件发生。延迟请求处理对以下情况也很有用:如果远程的/迟缓的资源必须在为该请求服务之前被获得;或者如果访问一个特殊资源,其需要扼杀一些请求以防止太多的并发访问。
延迟响应关闭——Ajax web应用的Comet风格,可以要求响应保持打开,以允许当异步事件产生时发送额外的数据。
阻塞/非阻塞通知——通知阻塞或非阻塞事件。
频道概念——订阅一个频道,以及从该频道获取异步事件的能力。这意味着可以创建、订阅、退订,以及应用一些诸如谁能加入、谁不能加入的安全限制。
安全
login/logout能力。
自注册。
结合
结合/需求,来自REST JST JSR(JSR 311 )。
结合/需求,来自JSF 2.0 JSR(JSR 134 )。
其它
支持更好的欢迎文件(welcome file)。
ServletContextListener排序。
容器范围内定义init参数。
文件上载——过程侦听——存储中间或最终文件。
澄清线程安全问题。
Greg Wilkins,Jetty 的主要开发者和本JSR的支撑成员,反对“支持异步和Comet”之下的一些目标。对于非阻塞输入和输出,他认为这一能力应该加入到容器中,而不是曝露给servlet开发者。对于延迟请求处理,他认为挂起/恢复语义会更好些,而且他们还将导致对延迟响应关闭的需求。
适当的时候现有项目将被用来作为指南。例如当前支持Comet的容器,如Grizzly 、Tomcat 和Jetty,在为Comet定义API时,将被复查(review)。“Comet 是一种编程技术,允许web服务器无需任何客户端请求而发送数据到客户端。它允许创建托管在浏览器中的事件驱动web应用。”针对于可插拔web框架,现存的一些web框架如Shale 、DWR 、Spring Web Flow 和Wiched 也将被分析。
来源:
http://www.infoq.com/news/2007/06/servlet3
banq
2007-06-27 09:59
>支持
异步
和Comet
异步非常重要的特性,以及保持常连接,这些原来不是Http协议的本身特征,所以,实现异步和comet要难一些,这些都需要新的servlet容器在Http和socket底层基础上进行更复杂的模拟封装。
comet等功能应用其实很广泛,不只是AJAX,原来就存在这个问题,也就是拉和推的机制:PULL和PUSH,比如服务器要不断将数据不定时发送到浏览器,现在只能采取从浏览器一端不断从服务器PULL拉数据,这肯定不适应大并发访问,浪费带宽,如果能够自然实现服务器将数据推给所有客户端,很显然更合理。
只要到Servlet3.0才能将B/S结构向更广泛范围推广。
gougou3250
2007-07-04 18:41
期待nio的推
到时候ajax就牛比了