Java 服务端开发为什么不脱离 serverlet?

2020-06-15 17:59:52 +08:00
 noble4cc

现在的各种服务端框架比如 structs springmvc springboot 等都是运行在 serverlet 容器里的

为什么不脱离 serverlet 一个框架本身就是一个 server,监听 http 请求 业务逻辑部分只需要编写 controller 就行了

类似 golang 的那种方式,一个服务打包好后就是一个 server,业务逻辑也被打包进去了

当然感觉是历史问题,毕竟 serverlet 这种形式也满足需求

5556 次点击
所在节点    Java
33 条回复
monkeyWie
2020-06-16 10:00:54 +08:00
放在当下是有点笨重啊,但是在以前那个年代,java 就靠着 servlet 规范才从 web 开发中突出重围,百花齐放啊。
slyang5
2020-06-16 11:38:05 +08:00
@monkeyWie 嘿嘿 个人觉得 servlet 规范还是挺好,
zzzmh
2020-06-16 13:47:23 +08:00
按照这思路,干脆脱离 java 得了,用 c 重写一套语言,专门跑 web 项目
whenwind
2020-06-16 14:51:04 +08:00
轻量的我是喜欢用 nanohttpd,跑在 android 上面
hantsy
2020-06-16 16:56:53 +08:00
Servlet 只是 Java EE/Jakarta EE 的一种规范,事实证明,Servlet 可能是所有规范中影响力最大的规范,是 Java EE 体系中最成功的规范。

目前不用 Servlet 的也大把。Netty 是典型代表,ReactiveStreams 流行起来后,很多第三方框架都是基于 netty 的作品。Spring WebFlux 在 Spring Boot 中默认启用 Netty 作为服务器,当然也可以使用 Tomat,Jetty,Undertow 。
xuanbg
2020-06-16 17:29:33 +08:00
你为什么要用 TCP/IP 协议,自己搞一套不好吗?当然不好!没有标准,自行其是,哪来的互联互通。
CoderGeek
2020-06-16 20:48:56 +08:00
@hand515 老哥们了啊 哈哈哈 那会我未成年捣鼓过
Narcissu5
2020-06-17 09:18:13 +08:00
springboot 打包完就是一个 executable jar 啊,楼主你的痛点究竟在哪里
yizmaoaa
2020-06-17 10:35:59 +08:00
Vert.x Webflux micronaut quarkus
yizmaoaa
2020-06-17 10:39:42 +08:00
Servlet 本来就是很久以前定义的东西,放在现在看来是不合适,而且麻烦了。

以前定 Servlet 的 interface 的时候,就是想让各家自己去搞底下的 IO 层。然后用户可以随便换

放到现在来看,Servlet 的规范设计很明显是麻烦且不够直观了。

这也就是为何这几年都开始将协议 IO 处理交给 netty 的原因了。
noble4cc
2020-06-17 10:54:51 +08:00
@yizmaoaa 而是多年了几乎没什么大变,确实有些老迈了
ychost
2020-07-02 17:18:37 +08:00
netty 就好了
yamasa
2020-09-15 10:41:45 +08:00
spring 这些难道就不是一个 jar 或者 war 打好了就是一个服务?人间迷惑行为。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/681772

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX