Servlet 需要深入学习吗

2020-07-12 12:48:51 +08:00
 zhuyongqi9
看了林信良的《 Jsp&Servlet 学习笔记》,很厚的一本,请问大家 Servlet 需要深入学习,了解原理和里面的各种对象,还是只要了解基本的用法就行(如 ServletRequest,ServletResponse,Cookie 等),另外网上都不建议学 JSP,那么用什么来替代呢
5662 次点击
所在节点    Java
38 条回复
cedoo22
2020-07-12 21:29:55 +08:00
jsp servlet 源于 j2ee 标准, , 要深入研究就看标准文档
hantsy
2020-07-12 21:47:46 +08:00
@chihiro2014
@redbelt

Spring 5.0 开始支持 Reactive 编程,但是并不是所有特性都有 Reactive 版本。

https://github.com/hantsy/spring-reactive-sample

Servlet Stack 在很长的一段时间还会是主流,与 Reactive Stack 并存。

另外 Spring 5 也支持 Kotlin Coroutines,本来用 Functional 或者叫流式的程序,又拉直了,看起来和传统的 Servlet 写法一样,因为并不是所有的人都是喜欢 Functional 。

https://github.com/hantsy/spring-kotlin-coroutines-sample

同时传统的 Servlet 编程也支持 Functional 类似的写法。

https://github.com/hantsy/spring-webmvc-functional-sample
hantsy
2020-07-12 22:01:16 +08:00
@sagaxu JSP 2.0 以后的 XML 兼容方式还是可行的,与之前版本不一样的是一些 JSPParser 是用 XSLT 转换的(这和一些模板引擎一样),不是 Java Compiler 编译的。传统内嵌 Java 代码,编译太扯蛋了,先转译成 Java ( Servlet 代码),Java Compiler 再编译成 Class 运行。

https://github.com/hantsy/spring4-sandbox/blob/master/mvc-tiles3/src/main/webapp/WEB-INF/views/details.jspx

我之前到 JSF 1 。2 后,基本都是用 Facelets 了。
现在很少碰 Java EE 的内置的 Web UI 方案了。现在 REST 前后分开开发看起来不错,但很多时候简单的事情搞复杂了。
ecoolper
2020-07-12 23:40:40 +08:00
servlet 规范一定要看
wleexi
2020-07-12 23:56:06 +08:00
hantsy
2020-07-13 00:11:35 +08:00
@wleexi 请稳步,https://jakarta.ee/
现在是 Eclipse 基金会下的项目了。
hantsy
2020-07-13 00:13:48 +08:00
nutting
2020-07-13 08:30:08 +08:00
你要是已经有 3 年工作经验,基本的 http 相关的应该都了解了,不用深入。如果新手,适当学学
wleexi
2020-07-13 09:25:22 +08:00
hantsy
2020-07-13 09:49:59 +08:00
@wleexi Java EE 8.0 ( 2017 )以前是由 SUN/Oracle 主导开发,后面的版本全部移交到了 Eclipse 。

Jakarta EE 8.0 ( 2019 )是 Eclipse 下发布的第一个版本(除了协议等,和发布的产品命名,API 使用没有太多的变化),Jakarta EE 9.0 在国庆前应该会发布。

目前 Spring 5.0 已经对齐 Jakarta EE 8.0 。
hantsy
2020-07-13 09:53:14 +08:00
hantsy
2020-07-13 09:54:56 +08:00
Jakarta EE 9 由于 Oracle 协议问题会包括破坏性 API 更新,全部包名,XML Namespace 会启用新的 Jakarta 前缀。

https://github.com/hantsy/jakartaee9-starter-boilerplate/blob/master/docs/upgrade.md
wleexi
2020-07-13 10:31:47 +08:00
@hantsy 意思是关于 Servlet 的规范不能在 jcp.org 查阅了么?
hantsy
2020-07-13 11:11:29 +08:00
@wleexi JCP 现存的 API 文档都是 2017 年以前的老版本。
qq1340691923
2020-07-13 11:12:55 +08:00
必须得了解啊
Chinsung
2020-07-13 18:36:26 +08:00
没什么必要,servlet 本身就是个标准,值得学习的是容器的实现。
但是从你能问出这个问题来看,可以说相等的时间去了解 TCP 连接,HTTP 连接,甚至去用 socket 写一个能处理很简单的 http 请求的 server,都比看一大堆这种所谓的深入要有用。
这种是你什么时候遇到了开源的 servlet 容器出现问题,需要研究他们实现的时候再去深入的。
walnsrully
2020-07-14 02:12:08 +08:00
servlet 要学。jsp 不用学。前后端分离已经不需要 view 层了,页面渲染都交给前端的 js 框架了
wleexi
2020-07-14 22:09:55 +08:00
@hantsy

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

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

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

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

© 2021 V2EX