欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Servlet 3.0 Public Review 引起Java社区激烈讨论

程序员文章站 2022-03-23 09:21:06
...
所有现代的Java web应用都使用Servlets和Filters过滤器,它们是Java EE的脊梁,是通向web的沟通枢纽。 JSR-315:Servlet 3.0 Public Review 现在已经公开的Servlet 3.0规范发布了,而且随之在GlassFish的主程序内提供了参考实现。新的Servlet 3.0规范,引起了Java社区的激烈讨论,从JSR 315制定专家组为Servlet做的选择到Java EE 6平台都引起了争论。

Servlet API从最早的草稿方案开始一直是相当粗糙的,JSR 315专家组就是着手对servlet规范进行修缮和改进,比如更容易开发Ease of Development (EoD),提供可插件性pluggability 和异步asynchronous 支持。

Rajiv Modanni作为规范专家组的领导,描述这三个方面:

Rajiv Modanni 写道
更容易开发:在早期草稿中,我们添加了annotations,允许开发者写servlet本质上类似于POJO。但是经过专家组的讨论和来自社区反馈后,我们决定现在删除函数层annotations,类似@GET,@POST等,还是保留doGet,doPost函数规范和需要扩展HttpServlet。但是最高层annotations依然存在,为了更好的使用在应用中被重新命名。@WebServlet annotation 用来申明一个servlet,@ServletFilter用来申明一个过滤器,@WebServletContextListener用来定义ServletContextListeners。除了这些annotations,其他annotations类似@Resource能支持Servlet 2.5以前的web应用。

提供可插件性:我们在Servlet 3.0中提供了新的方法让配置框架更加简单。

异步处理:这是修改最大的一块。在草稿中,我们定义了suspend和resume,certain语法,但是专家组提供了其他的方法来满足不同的需求。


专家组成员Roy Van Rijn表明了为什么一些以前草稿中的属性没有出现的原因:

Roy Van Rijn 写道
我倾向于对GET/POST函数不使用annotations,但是我阅读了Java EE 6规范,而Java EE 6规范提倡使用annotations,所以JSR-315编写者其实是没有选择的(糟糕的解释)。我把我的意见发给了JSR专家组,但是没有得到任何反馈。


Greg Wilkins对于Servlet 3.0发表了激烈的意见,他认为新的规范严重缺乏文档,而且不和谐的专家组在糟糕的讨论进程中仓促完成了规范。

Greg Wilkins 写道
首先新的规范API设计没有考虑到实现复杂性,验证实用性和倾听社区反馈

要求测试现实被拒绝

没有一个开放的值得考虑的方式来搜集社区用户的需求,只是采用了极少数社区讨论意见。

一些未经证实的需求,比如异步请求被添加进入规范

如同其他JCP文件一样新规范文档写的很糟糕

新规范的某些部分反而会降低开发效率,提高安全危险


详情查看:[url]Servlet 3.0 Public Review Sparks a Debate[/url]

关于Servlet 3.0具体实现方面的讨论,推荐查看TheServerSide的:Pondering About JSR-135, the New Servlet 3.0 Specification
相关标签: Servlet Java